标签:ide play names 参考 hid opened std bsp strong
小S正趴在地上画画,发现书桌上有一个国际象棋棋盘,上面还放了一些棋子。她想用手中的彩笔给这些棋子都涂上颜色,使得每一行或每一列里没有颜色相同的棋子。
小S想知道她至少要用几种彩笔呢?
第一行,一个整数N(1≤N≤100),表示国际象棋的棋盘规模是N×N的。
接下来是一个N×N的字符矩阵,由“×”和“.”两种字符组成。如果矩阵中第i行第j列的字符是“×”,则表示棋盘上第i行第j列的格子中有一个棋子;如果是“.”,则那个格子是空着的。
一个整数M,表示至少要涂M种颜色。
2
*.
**
2
容易想到,答案即为棋子数量最多的行或列的棋子数量。
#include <iostream> #include <algorithm> #include <cmath> #define MAXN 101 using namespace std; int n; char a[MAXN][MAXN]; int fx[MAXN][MAXN], fy[MAXN][MAXN]; int ans; int main() { cin >> n; for(register int i = 1; i <= n; i++) { for(register int j = 1; j <= n; j++) { cin >> a[i][j]; } } for(register int i = 1; i <= n; i++) { for(register int j = 1; j <= n; j++) { fx[i][j] = fx[i][j - 1] + (a[i][j] == ‘*‘); fy[j][i] = fy[j][i - 1] + (a[i][j] == ‘*‘); ans = max(ans, max(fx[i][j], fy[j][i])); } } cout << ans; return 0; }
标签:ide play names 参考 hid opened std bsp strong
原文地址:https://www.cnblogs.com/kcn999/p/10805683.html