专栏文章

题解:P1319 压缩技术

P1319题解参与者 10已保存评论 10

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
10 条
当前快照
1 份
快照标识符
@mip4zuyb
此快照首次捕获于
2025/12/03 06:15
3 个月前
此快照最后确认于
2025/12/03 06:15
3 个月前
查看原文

题目分析

我们需要根据给定的压缩码还原出原始的 n×nn\times n01 点阵图案。压缩码的第一个数字是 nn,后续数字交替表示连续的 0 和 1 的个数。

解决思路

根据数字序列交替填充 0 和 1,第一个数字表示连续的 0 的个数,第二个数字表示连续的 1 的个数,依此类推。
此思路需要双重循环,时间复杂度为 O(n2)O(n^2),可以接受。

代码实现

CPP
#include <bits/stdc++.h>
using namespace std;
int n,sum,cnt,ct,ans;
int main(){
    cin>>n;
    sum=n*n;
    while(ans<sum){
        cin>>ct;
        for(int i=0;i<ct;i++){
            cout<<cnt;
            ans++;
            if(ans%n==0){
                cout<<endl;
            }
        }
        cnt=1-cnt;// 切换 0 和 1。
    }
    return 0;
}

评论

10 条评论,欢迎与作者交流。

正在加载评论...