Does Not Shading feature exist in Codeforces programming challenges?

2026-05-22 09:062阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计719个文字,预计阅读时间需要3分钟。

Does Not Shading feature exist in Codeforces programming challenges?

主题:+ 题目链接:+ Problem A - Codeforces 题目大意读:+ 题目大意是:+ 给你一个由黑和白组成的方格(可能全黑或全白),你需要通过改变存在黑格的那一行或列的颜色,来找到使所有格子变为相同颜色的方法。+

题目:​

题目链接:Problem - A - Codeforces


题目大意解读:

题目大意是给你一个存在黑和白的方格(可能存在全是黑色或者白色),你要通过使存在黑格的那一行或列变黑,来找到使目标位置变成黑色的最小步骤。


解题步骤:

可以很容易的找到

只存在如下几种情况:

1.全为白格,直接输出-1,表示不可能使目标位置变成黑色

2.目标位置原本就是黑格,直接输出0,代表需要0步

3.目标位置所在的行或列有黑格存在,输出1,代表只需要1步

4.目标位置所在的行和列均无黑格存在,输出2,代表只需要2步


注意事项:

在存储字符的时候如果是用 %c 单个存储字符,它会造成读取的时候,读取到 '\n' ,出现存储错误的情况,这个时候我们可以采用如下解决方式:

char c; scanf("%c",&c); if(c=='\n')scanf("%c", &c);


代码详解:

#include<stdio.h> #include<iostream> using namespace std; int arr[60][60]; int main() { int t, n, m, r, c; cin >> t; char ct; while (t--) { scanf("%d%d%d%d", &n, &m, &r, &c); int flag = 0; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { scanf("%c", &ct); if(ct=='\n')scanf("%c", &ct); if (ct == 'W') arr[i][j] = 1; else if (ct == 'B') arr[i][j] = 2, flag = 1; } } if (flag == 0) { printf("-1\n"); continue; }//特判 if (arr[r][c] == 2) { printf("0\n"); continue; }//特判 int fd = 0; for (int i = 1; i <= n; i++) { if (arr[i][c] == 2) { fd = 1; break; } }//特判 目标所在列是否存在黑格 for (int i = 1; i <= m; i++) { if (arr[r][i] == 2) { fd = 1; break; } }//特判 目标所在行是否存在黑格 if (fd == 1) { printf("1\n"); } else { printf("2\n"); } } return 0; }

PS:一雨洗旱尘,吾庐气疏豁。土润竹萌出,水长渔舟活- -陆游- -《喜雨·一雨洗旱尘》

Does Not Shading feature exist in Codeforces programming challenges?

PPS:好久没更博客,因为太忙了(好吧,是我太懒了),在接下来会保持博客质量的同时大家带来更好的文章。希望对你有帮助,感谢大家。

本文共计719个文字,预计阅读时间需要3分钟。

Does Not Shading feature exist in Codeforces programming challenges?

主题:+ 题目链接:+ Problem A - Codeforces 题目大意读:+ 题目大意是:+ 给你一个由黑和白组成的方格(可能全黑或全白),你需要通过改变存在黑格的那一行或列的颜色,来找到使所有格子变为相同颜色的方法。+

题目:​

题目链接:Problem - A - Codeforces


题目大意解读:

题目大意是给你一个存在黑和白的方格(可能存在全是黑色或者白色),你要通过使存在黑格的那一行或列变黑,来找到使目标位置变成黑色的最小步骤。


解题步骤:

可以很容易的找到

只存在如下几种情况:

1.全为白格,直接输出-1,表示不可能使目标位置变成黑色

2.目标位置原本就是黑格,直接输出0,代表需要0步

3.目标位置所在的行或列有黑格存在,输出1,代表只需要1步

4.目标位置所在的行和列均无黑格存在,输出2,代表只需要2步


注意事项:

在存储字符的时候如果是用 %c 单个存储字符,它会造成读取的时候,读取到 '\n' ,出现存储错误的情况,这个时候我们可以采用如下解决方式:

char c; scanf("%c",&c); if(c=='\n')scanf("%c", &c);


代码详解:

#include<stdio.h> #include<iostream> using namespace std; int arr[60][60]; int main() { int t, n, m, r, c; cin >> t; char ct; while (t--) { scanf("%d%d%d%d", &n, &m, &r, &c); int flag = 0; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { scanf("%c", &ct); if(ct=='\n')scanf("%c", &ct); if (ct == 'W') arr[i][j] = 1; else if (ct == 'B') arr[i][j] = 2, flag = 1; } } if (flag == 0) { printf("-1\n"); continue; }//特判 if (arr[r][c] == 2) { printf("0\n"); continue; }//特判 int fd = 0; for (int i = 1; i <= n; i++) { if (arr[i][c] == 2) { fd = 1; break; } }//特判 目标所在列是否存在黑格 for (int i = 1; i <= m; i++) { if (arr[r][i] == 2) { fd = 1; break; } }//特判 目标所在行是否存在黑格 if (fd == 1) { printf("1\n"); } else { printf("2\n"); } } return 0; }

PS:一雨洗旱尘,吾庐气疏豁。土润竹萌出,水长渔舟活- -陆游- -《喜雨·一雨洗旱尘》

Does Not Shading feature exist in Codeforces programming challenges?

PPS:好久没更博客,因为太忙了(好吧,是我太懒了),在接下来会保持博客质量的同时大家带来更好的文章。希望对你有帮助,感谢大家。