样例过了但是零分(我实在找不出来错误了,给个测试点也行)

P3654 First Step (ファーストステップ)

第一个判断的循环里应该是 arr[i][j + x] != '.' ------------ 不是arr[i][j + k] != '.' 同时还要特判一下加x后是否超出边界 贴上本人AC代码供参考: ```cpp #include<bits/stdc++.h> using namespace std; int main(){ string str; int r,c,k,a[101][101],cnt=0; cin>>r>>c>>k; for(int i=1;i<=r;i++){ cin>>str; for(int j=1;j<=c;j++){ if(str[j-1]=='.') a[i][j]=0; else a[i][j]=1; } } for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){ if(a[i][j]==1||j+k-1>r)continue; int flag=1; if(a[i][j]==0){ for(int l=j+1;l<j+k;l++){ if(a[i][l]==1){ flag=0; break; } } if(flag==1)cnt++; } } } for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){ int flag=1; if(a[i][j]==1||i+k-1>c)continue; if(a[i][j]==0){ for(int l=i+1;l<i+k;l++){ if(a[l][j]==1){ flag=0; break; } } if(flag==1)cnt++; } } } if(k==1)cout<<cnt/2; else cout<<cnt; return 0; } ```
by zqx1108 @ 2023-01-24 09:32:32


|