CSP-J 第二轮 T2游寄

警示后人:注意多测清空(本人T2就是多测把vis定义在了main里面没清零爆0的)

原本代码:

#include<bits/stdc++.h>
using namespace std;
int T;
int main(){
	freopen("explore.in","r",stdin);
	freopen("explore.out","w",stdout);
	cin>>T;
	while(T--){
		int n,m,k;
		cin>>n>>m>>k;
		int x,y,d;
		cin>>x>>y>>d;
		bool a[1005][1005];
		bool b[1005][1005];
		b[x][y]=1;
		int step=0;
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				char tp;
				cin>>tp;
				if(tp=='x') a[i][j]=1;
				else a[i][j]=0;
			}
		}
		int nx,ny;//continue
		for(int i=0;i<k;i++){
			if(d==0) nx=x,ny=y+1;
			else if(d==1) nx=x+1,ny=y;
			else if(d==2) nx=x,ny=y-1;
			else if(d==3) nx=x-1,ny=y;
			if(1<=nx&&nx<=n&&1<=ny&&ny<=m&&a[nx][ny]==0){
				x=nx;
				y=ny;
				b[x][y]=1;
			}
			else{
				d=(d+1)%4;
				b[x][y]=1;
			}
		}
		int ans=0;
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				if(b[i][j]==1) ans++;
			}
		}
		cout<<ans<<endl;
	}
	return 0;
}



记录详情 - 洛谷 | 计算机科学教育新生态

因为是多测,就想着把变量定义在while里面,结果忘记清空了

就加上清空,


#include<bits/stdc++.h>
using namespace std;
int T;
int main(){
	freopen("explore.in","r",stdin);
	freopen("explore.out","w",stdout);
	cin>>T;
	while(T--){
		int n,m,k;
		cin>>n>>m>>k;
		int x,y,d;
		cin>>x>>y>>d;
		bool a[1005][1005];
		bool b[1005][1005];
		b[x][y]=1;
		int step=0;
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				char tp;
				cin>>tp;
				if(tp=='x') a[i][j]=1;
				else a[i][j]=0;
				b[i][j]=0;<-----------------------------------清空就是这一句
			}
		}
		b[x][y]=1;
		int nx,ny;//continue
		for(int i=0;i<k;i++){
			if(d==0) nx=x,ny=y+1;
			else if(d==1) nx=x+1,ny=y;
			else if(d==2) nx=x,ny=y-1;
			else if(d==3) nx=x-1,ny=y;
			if(1<=nx&&nx<=n&&1<=ny&&ny<=m&&a[nx][ny]==0){
				x=nx;
				y=ny;
				b[x][y]=1;
			}
			else{
				d=(d+1)%4;
			}
		}
		int ans=0;
		for(int i=1;i<=n;i++){
			for(int j=1;j<=m;j++){
				if(b[i][j]==1) ans++;
			}
		}
		cout<<ans<<endl;
	}
	return 0;
}

自己用CCF 官方数据测下来的结果

image



记录详情 - 洛谷 | 计算机科学教育新生态

AC

记住,多测不清空,亲人两行泪

1 个赞

这个喷不了,真有用

2 个赞

我小小BJ蒟蒻才290(J的,S连初赛都没过)

1 个赞

我 260,主要是第三题打错了一个字符不然就300了 :smiling_face_with_tear: