题目描述
设某汉字由N × N的0和1的点阵图案组成。我们依照以下规则生成压缩码。连续一组数值:从汉字点阵图案的第一行第一个符号开始计算,按书写顺序从左到右,由上至下。第一个数表示连续有几个0,第二个数表示接下来连续有几个1,第三个数再接下来连续有几个0,第四个数接着连续几个1,以此类推……
例如: 以下汉字点阵图案:
0001000
0001000
0001111
0001000
0001000
0001000
1111111
对应的压缩码是: 7 3 1 6 1 6 4 3 1 6 1 6 1 3 7 (第一个数是N ,其余各位表示交替表示0和1 的个数,压缩码保证 N × N=交替的各位数之和)
输入格式
一行,压缩码。
输出格式
汉字点阵图(点阵符号之间不留空格)。(3<=N<=200)
一道水题,记录一个简单点的思路
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cmath>
#include<stack>
#include<queue>
#define PI 3.1415926535
#include<functional>
#include<vector>
#include <iostream>
using namespace std;
typedef long long ll;
const int maxn=1e5;
const int N = 1e6 + 10;
const int INF = -10234567;
bool cmp(int a,int b)
{
return a>b;
}
struct node
{
int num;
int pri;
};
int main()
{
int n,battle;
int i=0,j;
int a[1000];
int sum=0;
int h=0,live=0;
int k=0;
cin>>n;
while(sum<n*n)
{
cin>>battle;
i+=1;
for(j=battle;j>=1;j--)
{
if(k==n)
{
cout<<endl;
k=0;
}
if(i%2!=0)
cout<<0;
else
cout<<1;
k+=1;
}
sum+=battle;
}
cout<<endl;
return 0;
}
GUD GUD STUDY ;
DAY DAY UPP!(手动滑稽)