【血的教训!!!!】千万别用getchar()

学术版

摸摸。
by _LiMLE_ @ 2022-11-27 00:13:53


@[LRL65](/user/57779) 是不是换行符的问题,去linux下试试看?
by yzhang @ 2022-11-27 00:18:43


@[yzhang](/user/37881) 是的是的
by LRL65 @ 2022-11-27 00:19:07


```cpp #include<bits/stdc++.h> const long long mod=998244353; using namespace std; long long T,n,m,c,f,nxt[1005][1005],nxt2[1005][1005],nxt3[1005][1005],id; char a[1005][1005]; int main() { freopen("plant.in","r",stdin); freopen("plant.out","w",stdout); cin>>T>>id; while(T--) { cin>>n>>m>>c>>f; for(int i=1;i<=n;i++) { getchar(); for(int j=1;j<=m;j++) a[i][j]=getchar(); } long long nxtf=-1; for(int i=1;i<=n;i++) { nxtf=-1; for(int j=m;j>=1;j--) { if(a[i][j]=='1')nxtf=-1; if(a[i][j]=='0'&&nxtf==-1)nxtf=j; if(nxtf==-1)nxt[i][j]=0; else nxt[i][j]=nxtf-j; } } nxtf=-1; for(int j=1;j<=m;j++) { nxtf=-1; for(int i=n;i>=1;i--) { if(a[i][j]=='1')nxtf=-1; if(a[i][j]=='0'&&nxtf==-1)nxtf=i; if(nxtf==-1)nxt2[i][j]=0; else nxt2[i][j]=nxtf-i; } } for(int j=1;j<=m;j++) { nxtf=-1; for(int i=1;i<=n;i++) { if(a[i][j]=='1')nxtf=-1; if(a[i][j]=='0'&&nxtf==-1)nxtf=i; if(nxtf==-1)nxt3[i][j]=0; else nxt3[i][j]=i-nxtf; } } for(int j=1;j<=m;j++) for(int i=2;i<=n;i++) if(a[i][j]=='0')nxt[i][j]+=nxt[i-1][j]; long long ans1=0,ans2=0; for(int i=1;i<=n-2;i++) for(int j=1;j<=m;j++) if(nxt2[i][j]>1)ans1=(ans1+(nxt[i][j]-nxt[i-1][j])*(nxt[i+nxt2[i][j]][j]-nxt[i+1][j])%mod)%mod; for(int i=3;i<=n-1;i++) for(int j=1;j<=m;j++) if(nxt3[i][j]>1)ans2=(ans2+(nxt[i-2][j]-nxt[i-nxt3[i][j]-1][j])*(nxt[i][j]-nxt[i-1][j])%mod*nxt2[i][j]%mod)%mod; cout<<c*ans1%mod<<" "<<f*ans2%mod<<endl; } } ```
by LRL65 @ 2022-11-27 00:19:43


这个是源代码,大家一定要吸取教训
by LRL65 @ 2022-11-27 00:20:01


@[LRL65](/user/57779) linux下只有\n,windows是\r\n,感觉看起来linux不会寄啊()
by yzhang @ 2022-11-27 00:21:38


@[LRL65](/user/57779) linux 下你这个应该能过
by DitaMirika @ 2022-11-27 00:25:56


@[LRL65](/user/57779) 你样例过了吗,这种问题样例过了应该就问题不大
by Sol1 @ 2022-11-27 00:27:18


@[Sol1](/user/61088) 过了
by LRL65 @ 2022-11-27 00:27:48


我记着bj省选就有个哥们快读写错 民间数据wa0 官方过了
by Sol1 @ 2022-11-27 00:29:02


| 下一页