1 条题解
-
0
Guest
-
1
题目给的很明白,甚至方向的 种情况都给你了,模拟即可。
#include<bits/stdc++.h> using namespace std; char mar[1005][1005]; bool vis[1005][1005]; void solve(int n,int m,int k,int x,int y,int d){ memset(vis,0,sizeof(vis)); int cnt=1; vis[x][y]=1; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ scanf(" %c",&mar[i][j]);//cnm 没清空缓冲区,我恨空白字符 } } for(int i=0;i<k;i++){ int tx=x,ty=y; if(d==0) ty++; if(d==1) tx++; if(d==2) ty--; if(d==3) tx--; if((1<=tx&&tx<=n)&&(1<=ty&&ty<=m)&&(mar[tx][ty]!='x')){ x=tx,y=ty; if(vis[x][y]==0){ cnt++; vis[x][y]=1; } }else{ d=(d+1)%4; } } fflush(stdout); printf("%d\n",cnt); return; } int main(){ //freopen("explore.in","r",stdin); //freopen("explore.out","w",stdout); int t,n,m,k,x,y,d; scanf("%d",&t); while(t--){ scanf("%d %d %d %d %d %d",&n,&m,&k,&x,&y,&d); solve(n,m,k,x,y,d); } return 0; }
警示后人/乐子欣赏/公开处刑
scanf
输入字符时,记得清空缓冲区,否则会导致读入空白字符导致满江红(全WA
)。今年 HA 有个 sb 在本题用scanf
没清缓冲区导致:- T2 爆零。
- 1= -> 2=。
- 300 pts -> 200pts。
- py 市第一 -> py 市第 。
- 1
信息
- ID
- 573
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 上传者