洛谷:P1319:压缩技术


洛谷:P1319:压缩技术

Table of Contents

题目

P1319:压缩技术

分析

一个简单的流程是:

  1. 读入n,这决定了为我们的字符矩阵的大小:n*n
  2. 准备读入数字。需要注意的是,我们并不知道有几个数字,但可以保证的是,这些数字加起来一定等于n*n——所以这就是一个循环控制条件。
  3. 这些数字决定了有几个0和几个1,并来回切换。我们用一个flag来跟踪之。
  4. 用一个字符数组(一开始为空),根据2中的输入和flag不断填充。
  5. 最后分行输出。

核心代码是:

bool flag = false; 
int total = n * n;
while (total > 0)
{
    cin >> count;
    for (int i = 1; i <= count; i++)
    {
        output.push_back(flag ? '1' : '0');
    }
    flag = !flag;
    total -= count;
}

答案

Solution

思考

在输出时,注意控制分行:

if ((i+1) % n == 0)
{
    cout << endl;
}

Previous Next