40分代码!
查看原帖
40分代码!
1023892
xx04楼主2024/12/22 11:23

大概知道问题点在哪儿,就是题目中的第二个样例感觉走的很奇怪,代码测试出来从4,2开始就飞了,走到别的方向了,

	for(int i=1;i<=t;i++){
		int n,m,k;
		int x,y,d;
		cin>>n>>m>>k>>x>>y>>d;
		int c=1;
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				cin>>a[i][j];
			}
		}
		while(k>0){		
			if(d==0){
				k--;
				if(k<0){
					break;
				}
				if(x>=1&&x<=n&&y>=1&&y+1<=m&&a[x][y+1]=='.'){					
					c++;
					y++;
					a[x][y]='x';
				}
				else{
					d=(d+1)%4;
				}
			} 
			if(d==1){
				k--;
				if(k<0){
					break;
				}
				if(x>=1&&x+1<=n&&y>=1&&y<=m&&a[x+1][y]=='.'){					
					c++;
					x++;
					a[x][y]='x';
				}
				else{
					d=(d+1)%4;
				}
			}
			if(d==2){
				k--;
				if(k<0){
					break;
				}
				if(x>=1&&x<=n&&y-1>=1&&y<=m&&a[x][y-1]=='.'){
					c++;
					y--;
					a[x][y]='x';
				}
				else{
					d=(d+1)%4;
				}
			}
			if(d==3){
				k--;
				if(k<0){
					break;
				}
				if(x-1>=1&&x<=n&&y>=1&&y<=m&&a[x-1][y]=='.'){
					c++; 
					x--;	
					a[x][y]='x';				
				}
				else{
					d=(d+1)%4;
				}
			}
		}
		cout<<c<<endl;		
	}
2024/12/22 11:23
加载中...