这个代码为什么本地运行正常,洛谷ide过不去?

P3392 涂条纹

for(f2=f1+1;f2<=n;f2++) 这段贴错了,应该是f2<=m,但是改了之后还是WA
by peashooter123 @ 2022-01-05 18:53:03


@[peashooter123](/user/574301) ```cpp #include <stdio.h> int a[52][3]; int n,m,max = 99999,cnt; int f1,f2; char c; int main() { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { scanf("\r\n"); for(int j=1;j<=m;j++) { scanf("%c",&c); switch(c) { case 'W':a[i][0]++;break; case 'B':a[i][1]++;break; case 'R':a[i][2]++;break; } } } for(f1=1;f1<=m-1;f1++) { for(f2=f1+1;f2<=n;f2++) { cnt = 0; for(int i=1;i<=n;i++) { if(i<=f1) cnt+=(m-a[i][0]); else if(i<=f2) cnt+=(m-a[i][1]); else cnt+=(m-a[i][2]); } if(cnt < max) max = cnt; } } printf("%d",max); return 0; } ``` 改成了这样,样例能过了。
by _LUOGU_USER_ @ 2022-01-05 19:07:54


好像是14行 ~~~cpp scanf("%c",&c); ~~~ 建议改成 ~~~cpp scanf(" %c",&c); //也就是加一个在""中ch前一个加空格 ~~~ 但是11行要去掉,也就是改成这样: ~~~cpp for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { scanf(" %c",&c); switch(c) { case 'W':a[i][0]++;break; case 'B':a[i][1]++;break; case 'R':a[i][2]++;break; } } } ~~~ 试试
by _maojun_ @ 2022-01-05 19:54:53


还有一个不是问题的问题,你的max求的是最小值……
by _maojun_ @ 2022-01-05 19:57:10


本地过了就是过了,oj过不去就是oj的问题.gif
by vix_hentx @ 2022-05-01 14:37:43


等等……可以直接定义max吗?max不是STL的函数吗
by creation_hy @ 2022-07-24 20:24:21


@[creation_hy](/user/576378) 楼主用的是C语言
by x383494 @ 2022-08-13 10:24:52


|