why?
查看原帖
why?
1276842
Zhao114楼主2024/11/5 12:41

为什么这题ccf零分,洛谷就AC了? 代码如下

#include <iostream>
#include <cstdio>
using namespace std;
char M[10000][10000];
long long book[10000][10000],nex[4][2] = {{0,1},{1,0},{0,-1},{-1,0}},n,m,k;
void df(long long x,long long y,long long d,long long step){
	long long i,nx,ny;
	book[x][y] = 1;
	if(step == 0){
		return;
	}
	nx = x + nex[d][0];
	ny = y + nex[d][1];
	if(nx > 0 && nx <= n && ny > 0 && ny <= m){
		if(M[nx][ny] == '.'){
			df(nx,ny,d,step-1);
			return;
		}
	}
	d = (d+1)%4;
	df(x,y,d,step-1);
	return;
}
int main(){
	freopen("explore.in","r",stdin);
	freopen("explore.out","w",stdout);
	long long i,t,x,y,d,j,o,ans = 0;
	cin>>t;
	for(i = 1;i <= t;i++){
		ans = 0;
		cin>>n>>m>>k;
		cin>>x>>y>>d;
		for(j = 1;j <= n;j++){
			for(o = 1;o <= m;o++){
				cin>>M[j][o];
			}
		}
		df(x,y,d,k);
		for(j = 1;j <= n;j++){
			for(o = 1;o <= m;o++){
				if(book[j][o] == 1){
					book[j][o] = 0;
					ans++;
				}
			}
		}
		cout<<ans<<endl;
	}
	fclose(stdin);
	fclose(stdout);
	return 0;
}

2024/11/5 12:41
加载中...