[题解]2024CCPC重庆站-小 C 的神秘图形

  • Sources:K - 小 C 的神秘图形
  • Abstract:给定正整数 n ( 1 ≤ n ≤ 1 0 5 ) n(1\le n\le 10^5) n(1≤n≤105),三进制字符串 n 1 , n 2 ( ∣ n 1 ∣ = ∣ n 2 ∣ = n ) n_1,n_2(|n_1|=|n_2|=n) n1,n2(∣n1∣=∣n2∣=n),按如下方法构造 3 n 3^n 3n 阶 0 / 1 0/1 0/1 方阵 A n A_n An(行列编号均从 0 0 0 开始),回答 A n ( n 1 , n 2 ) A_n(n_1,n_2) An(n1,n2)的值: A n ( i , j ) = { 1 , n = 1 A n − 1 ( i m o d    3 n − 1 , j m o d    3 n − 1 ) , n ≥ 2 } 若 3 n − 1 ≤ i < 2 × 3 n − 1 , 或 3 n − 1 ≤ j < 2 × 3 n − 1 0 , otherwise A_n(i,j)=\begin{cases}\begin{rcases}1, & n=1\\ A_{n-1}(i \mod 3^{n-1},j\mod 3^{n-1}),& n\ge2\end{rcases}若3^{n-1}\le i<2\times 3^{n-1},或3^{n-1}\le j<2\times 3^{n-1}\\0,\kern143pt \text{otherwise} \end{cases} An(i,j)=⎩ ⎨ ⎧1,An−1(imod3n−1,jmod3n−1),n=1n≥2}若3n−1≤i<2×3n−1,或3n−1≤j<2×3n−10,otherwise
  • Keywords:数学,思维(签到题)
  • Solution:考虑取模的进制本质。在三进制情形下对 3 n − 1 3^{n-1} 3n−1取模,本质上为取其长度为 n n n 的后缀。由于 i , j i,j i,j 一定与 n 1 , n 2 n_1,n_2 n1,n2 等长,因此仅需检查 i , j i,j i,j 首数字是否为 1 1 1 即可。由于矩阵本身即为递归构造,因此天然适合递归实现,也可采用递推实现。下面采取递推实现。
  • Code:
cpp 复制代码
#include<bits/stdc++.h>

using namespace std;
using ll=long long;

int n;
string n1,n2;

int solve(){
    for(int i=0;i<n;){
        if(n1[i]=='1'||n2[i]=='1'){
            if(i==n-1) return 1;
            else i++;
        }else return 0;
    }
}
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n>>n1>>n2;
    cout<<solve()<<'\n';
    return 0;
}
相关推荐
Gyoku Mint33 分钟前
深度学习×第4卷:Pytorch实战——她第一次用张量去拟合你的轨迹
人工智能·pytorch·python·深度学习·神经网络·算法·聚类
葫三生2 小时前
如何评价《论三生原理》在科技界的地位?
人工智能·算法·机器学习·数学建模·量子计算
pipip.2 小时前
UDP————套接字socket
linux·网络·c++·网络协议·udp
智者知已应修善业3 小时前
【51单片机用数码管显示流水灯的种类是按钮控制数码管加一和流水灯】2022-6-14
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
拓端研究室4 小时前
视频讲解:门槛效应模型Threshold Effect分析数字金融指数与消费结构数据
前端·算法
随缘而动,随遇而安6 小时前
第八十八篇 大数据中的递归算法:从俄罗斯套娃到分布式计算的奇妙之旅
大数据·数据结构·算法
孞㐑¥6 小时前
Linux之Socket 编程 UDP
linux·服务器·c++·经验分享·笔记·网络协议·udp
IT古董6 小时前
【第二章:机器学习与神经网络概述】03.类算法理论与实践-(3)决策树分类器
神经网络·算法·机器学习
水木兰亭9 小时前
数据结构之——树及树的存储
数据结构·c++·学习·算法
Jess0710 小时前
插入排序的简单介绍
数据结构·算法·排序算法