关于蒟蒻的不解
查看原帖
关于蒟蒻的不解
534734
_jinjin_楼主2024/8/15 20:24

为什么这个判断是否为死循环的ttt中次数大于四就一定可以说牛和人各自在同一时间以先前的方向步入先前的位置

#include<bits/stdc++.h>
using namespace std;
char t[12][12];
int a,b,c,d;
int s=0;
int q=1;
int qq=1;
int ttt[13][13][13][13];
int main(){
    for(int i=0;i<=12;i++){
		for(int j=0;j<=12;j++){
	        t[i][j]='*';
		}
	}
    for(int i=0;i<=12;i++){
		for(int j=0;j<=12;j++){
	        for(int ii=0;ii<=12;ii++){
		        for(int jj=0;jj<=12;jj++){
	                ttt[i][j][ii][jj]=0;
		        }
	        }
		}
	}
	for(int i=1;i<=10;i++){
		for(int j=1;j<=10;j++){
			cin>>t[i][j];
			if(t[i][j]=='F'){
				a=i;
				b=j;
			}
			if(t[i][j]=='C'){
				c=i;
				d=j;
			}
		}
	}
	while(1){
        //cout<<ttt[a][b][c][d]<<" ";
        if(ttt[a][b][c][d]>4){//介里,就是介里
            s=0;
            break;
        }
        ttt[a][b][c][d]++;
		s++;
		if(q%4==1){
			if(t[a-1][b]!='*'){//ttt[a][b][c][d]++;
				a--;
			}
			else if(t[a-1][b]=='*'){
				q++;
			}
		}
		else if(q%4==2){
			if(t[a][b+1]!='*'){//ttt[a][b][c][d]++;
				b++;
			}
			else if(t[a][b+1]=='*'){
				q++;
			}
		}
		else if(q%4==3){
			if(t[a+1][b]!='*'){//ttt[a][b][c][d]++;
				a++;
			}
			else if(t[a+1][b]=='*'){
				q++;
			}
		}
		else if(q%4==0){
			if(t[a][b-1]!='*'){//ttt[a][b][c][d]++;
				b--;
			}
			else if(t[a][b-1]=='*'){
				q++;
			}
		}
		if(qq%4==1){
			if(t[c-1][d]!='*'){//ttt[a][b][c][d]++;
				c--;
			}
			else if(t[c-1][d]=='*'){
				qq++;
			}
		}
		else if(qq%4==2){
			if(t[c][d+1]!='*'){//ttt[a][b][c][d]++;
				d++;
			}
			else if(t[c][d+1]=='*'){
				qq++;
			}
		}
		else if(qq%4==3){
			if(t[c+1][d]!='*'){//ttt[a][b][c][d]++;
                //cout<<c+1<<" "<<d<<endl;
                //cout<<t[11][3];
                //cout<<endl;
				c++;
			}
			else if(t[c+1][d]=='*'){
				qq++;
			}
		}
		else if(qq%4==0){
			if(t[c][d-1]!='*'){//ttt[a][b][c][d]++;
				d--;
			}
			else if(t[c][d-1]=='*'){
				qq++;
			}
		}
		if(a==c&&b==d){
			break;
		}
	}
	cout<<s;
	return 0;
}
2024/8/15 20:24
加载中...