社区讨论
进食后人:不要getline(谁看看为什么)
P3392涂条纹参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mhj1ycxw
- 此快照首次捕获于
- 2025/11/03 19:24 4 个月前
- 此快照最后确认于
- 2025/11/03 19:24 4 个月前
1: getline前如果已经cin过了,需要getchar()除去一个换行,否则出问题
2: 我也不知道是什么原理,我用了getline的代码14分,然后getline改cin之后就AC了
代码如下:
CPP2: 我也不知道是什么原理,我用了getline的代码14分,然后getline改cin之后就AC了
代码如下:
#include <bits/stdc++.h>
using namespace std;
int N,M;
int mino = 11451481;
int temp[55][3];//W B R
string line;
int fos(int ar[][3],int up,int dw)
{
int sum = 0;
for(int w = 0; w < up; w++) sum += (M - ar[w][0]);
// cout << sum << 'w' << endl;
for(int b = up; b <= dw; b++) sum += (M - ar[b][1]);
// cout << sum << 'b' << endl;
for(int r = dw + 1; r < N; r++) sum += (M - ar[r][2]);
// cout << sum << 'r' << endl;
return sum;
}
int main()
{
cin >> N >> M;
getchar();
for(int i = 0; i < N; i++)
{
getline(cin, line);
for(int j = 0; j < M; j++)
{
if(line[j] == 'W') temp[i][0] ++;
if(line[j] == 'B') temp[i][1] ++;
if(line[j] == 'R') temp[i][2] ++;
}
}
for(int i = 1; i < N - 1; i++)
{
for(int j = N - 2; j >= i; j--)
{
mino = min(fos(temp,i,j),mino);
}
}
cout << mino <<endl;
}
改完的我不发出来了,就是cin单个字符来判断的
有犇犇奆奆路过的话可以帮蒟蒻看看为什么getline错吗不清楚原理
回复
共 2 条回复,欢迎继续交流。
正在加载回复...