求助:数据一大就出问题
查看原帖
求助:数据一大就出问题
776898
silentpower楼主2022/8/24 16:22

RT,样例和数据小的时候可以正确输出,但是数据大了之后就会出现输出比应该的更多的行数之类的问题,求大佬看看是什么问题,本蒟蒻感觉似乎是输出的问题但是不知道怎么改。

#include <bits/stdc++.h>
using namespace std; 
int table[450][450],dx[450],dy[450];
bool jud[401][401];

int xp[8]={2,2,1,1,-1,-1,-2,-2},yp[8]={1,-1,2,-2,2,-2,1,-1};
queue <int> quex;
queue <int> quey;

int main(){
	int n,m,x,y;
	memset(table,-1,sizeof(table));
	for(int i=0;i<=450;i++)dx[i]=i;
	for(int i=0;i<=450;i++)dy[i]=i;	
	cin>>n>>m>>y>>x;
	quex.push(dx[x]);
	quey.push(dy[y]);
	table[quex.front()][quey.front()]=0;
	jud[x][y]=true;
	for(int i=1;i<1000;i++){
		int tempx=quex.front();
		int tempy=quey.front();
		if(!quex.empty()&&!quey.empty())	{
				quex.pop();
		quey.pop();
		}	
	
		for(int t=0;t<=7;t++){
			if(jud[dx[tempx+xp[t]]][dy[tempy+yp[t]]]==true||1>dx[tempx+xp[t]]||dx[tempx+xp[t]]>m||dy[tempy+yp[t]]<1||dy[tempy+yp[t]]>n){
			continue;}
				quex.push(dx[tempx+xp[t]]);
		    quey.push(dy[tempy+yp[t]]);
		    table[dx[tempx+xp[t]]][dy[tempy+yp[t]]]=table[tempx][tempy]+1;
		    jud[dx[tempx+xp[t]]][dy[tempy+yp[t]]]=true;
			
			
		}
				
	}	
	for (int i = 1;i <= n;i++) {
		for (int t = 1;t <= m;t++) {
			cout << table[t][i] << "    ";
		}
		cout << endl;

	}
	return 0;
}
2022/8/24 16:22
加载中...