求助csp-j T2(悬关)
  • 板块学术版
  • 楼主tjx123456
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/11/1 22:49
  • 上次更新2024/11/2 10:33:40
查看原帖
求助csp-j T2(悬关)
1180981
tjx123456楼主2024/11/1 22:49

本蒟蒻这题只拿了40pts,dalao们帮调一下qwq

题目

Wrong Code

#include <bits/stdc++.h>
const int maxn=1005;
char a[maxn][maxn];
bool vis[maxn][maxn];
int n,m,k;
bool is_valid(int x,int y){
	if(x<1||x>n||y<1||y>m) return false;
	if(a[x][y]=='x') return false;
	return true;
}
int main(){
	int T;
	scanf("%d",&T);
	for(int _=1;_<=T;_++){
		int x,y,d;
		scanf("%d%d%d",&n,&m,&k);
		scanf("%d%d%d",&x,&y,&d);
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++) vis[i][j]=false;
		}
		for(int i=1;i<=n;i++){
			scanf("%s",&a[i][1]);
		}
		int ans=1;
		vis[x][y]=true;
		while(k--){
			int xi=x,yi=y;
			if(d==0) yi+=1;
			else if(d==1) xi+=1;
			else if(d==2) yi-=1;
			else if(d==3) xi-=1;
			
			if(is_valid(xi,yi)&&!vis[xi][yi]){
				ans++;
				x=xi,y=yi;
				vis[x][y]=true;
			}
			else d=(d+1)%4;
		}
		printf("%d\n",ans);
	}
	return 0;
}
2024/11/1 22:49
加载中...