专栏文章

题解:P1320 压缩技术(续集版)

P1320题解参与者 4已保存评论 4

文章操作

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

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

前言:

又是一道水题,太好了。

思路:

首先,这道题和 p1319 思路几乎一模一样,不知道的自己去看。于是呢,我们可以将那道题反着来做一下。仔细观察题目,不难发现这道题就是输入一个压缩了以后的图片,然后让我们输出这张图片的边长为几。然后,交替输出 0 和 1 的个数,这道题就结束了。
于是,我们可以使用一个 while 循环,来计算边长为多少。然后,再用 jsjs 变量来计算 0 和 1 的数量,而代码中的 ysmysm 则是判断 dztdzt 数组中的第 ii 行,第 jj 个字符为 0 还是 1,是的话,jsjs 就加 1,否则将 ysmysm 进行更改。

My AC Code:

CPP
#include <bits/stdc++.h>
using namespace std;
int main(){
    string dzt[200];
    int n = 0;
    while(cin>>dzt[n]) n++;
    cout<<n<<' ';  
    char ysm='0';
    int js=0;
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            if(dzt[i][j]==ysm)
                js++;
            else{
                cout<<js<<' ';
                ysm=(ysm=='0')?'1':'0';
                js=1;
            }
        }
    }
    cout<<js;
    return 0;
}
每天一题解,红名靠近我。

评论

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

正在加载评论...