样例通过了,为什么会超时???
查看原帖
样例通过了,为什么会超时???
930982
youcaiyoujuan楼主2024/2/29 20:03
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
int a[205][205];
int b[10000];
bool visit[10000];
int main()
{
    int n,count = 0,cnt = 0,flag = 0,p = 0;
    cin >> n;
    for(int i = 0;;i++) 
	{
    if(cin.get() == '\n') break;//回车结束输入 
	cin >> b[i];//将数据依次存入数组 
    }
    for(int j = 1;j <= n;j++)
    for(int m = 1;m <= n;m++)
    {
    		while(b[p] == 0&&visit[p] == 0)//判断压缩码是否为0 
			{
				if(cnt == 0) cnt = 1;//将点阵上的1和0互换进行赋值 
				else cnt = 0;
				visit[p] = 1;//表示已访问 
	            p++;//下一个压缩码 
		    }
    				a[j][m] = cnt;//对二维数组依次赋值0或1 
    				count++;//依次赋值统计次数
    	   if(count == b[p]&&visit[p] == 0)//若次数满足压缩码 
				{  
				   count = 0;//次数归为0 
				   if(cnt == 0) cnt = 1;//0和1互换赋值 
				   else cnt = 0;
				   visit[p] = 1;
				   p++;//下一个压缩码 
			    }
			
	}
	for(int k = 1;k <= n;k++)
	{
		for(int l = 1;l <= n;l++)
		cout << a[k][l];
		cout << endl;
	}
    return 0;
}
2024/2/29 20:03
加载中...