社区讨论

我把每行划分用拟用for循环完成区间划分,但是有问题,咋办?

P3392涂条纹参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lpqfxb5b
此快照首次捕获于
2023/12/04 12:57
2 年前
此快照最后确认于
2023/12/04 17:09
2 年前
查看原帖
CPP
#include<stdio.h>
typedef struct
{
	int b;
	int w;
	int r;
}line;
line str[50];//用于存每行的白,红,蓝的数量

int main()
{
	int n, m;
	char ch;
	scanf("%d %d", &n, &m);
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < m; j++)
		{
			ch = getchar();
			while (ch == '\n')
			{
				ch = getchar();
			}
			switch (ch)
			{
			case 'W':
				str[i].w++;
				break;
			case 'B':
				str[i].b++;
				break;
			case 'R':
				str[i].r++;
				break;
			default:
				break;
			}
		}
	}//输入用getchar()时为了消去'\n'
	int num=0,min=2501;
	for (int i = 1; i < n; i++) {
        for (int j = i + 1; j < n; j++) {
            for (int ii = 0; ii < i; ii++) {
                num += str[ii].b + str[ii].r;
            }
            for (int ii = i; ii < j; ii++) {
                num += str[ii].w + str[ii].r;
            }
            for (int ii = j; ii < n; ii++) {
                num += str[ii].w + str[ii].b;
            }
            if (num < min) {
                min = num;
            }
            num = 0;
        }
    }



	printf("%d", min);
	return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...