suxiaozhou @ 2024-10-27 22:38:31
捞
忘判边界了/呜呜呜
赛时五个样例全过 没有意识到问题
洛谷民间数据70pts
求会被扣多少分.(还有为什么能过样例啊啊
Code:
#include <bits/stdc++.h>
using namespace std;
int T,n,m,k,x,y,d,ans;
char c[1010][1010];
bool vis[1010][1010];
int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
void go(){
vis[x][y]=1;
while (k--){
int xx=x+dx[d],yy=y+dy[d];
if (c[xx][yy]=='.'){
x=xx;y=yy;
vis[x][y]=1;
}
else{
d=(d+1)%4;
}
}
return;
}
int main(){
freopen("explore.in","r",stdin);
freopen("explore.out","w",stdout);
ios::sync_with_stdio(0);
cin>>T;
while(T--){
cin>>n>>m>>k;
cin>>x>>y>>d;
ans=0;
for (int i=1;i<=n;i++){
for (int j=1;j<=m;j++){
cin>>c[i][j];
vis[i][j]=0;
}
}
go();
for (int i=1;i<=n;i++){
for (int j=1;j<=m;j++){
if (vis[i][j]){
ans++;
}
}
}
cout<<ans<<"\n";
}
return 0;
}
求dalao 解答 谢谢!
by diamond_153 @ 2024-10-27 23:02:53
@suxiaozhou 呃呃,你没有在处理下一个数据前清空 c
导致可能走到外面,过样例大概是因为每个测试点的数据范围都一样,个人估计扣