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