P3392 涂条纹
题目链接:
第一反应是枚举白色和蓝色、以及蓝色和红色的边界。输入字符数组的同时,预处理出将每一行涂为白色、蓝色、红色所需要的块数。
然后对
#include <bits/stdc++.h> const int N = 60; char a[N][N]; int w[N], B[N], R[N]; int n, m, ans = 0x3f3f3f3f; int main() { std::cin >> n >> m; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { std::cin >> a[i][j]; if (a[i][j] != 'W') w[i]++; if (a[i][j] != 'B') B[i]++; if (a[i][j] != 'R') R[i]++; } } for (int i = 1; i <= n; i++) { w[i] += w[i - 1]; B[i] += B[i - 1]; R[i] += R[i - 1]; } for (int i = 1; i < n - 1; i++) { for (int j = i + 1; j < n; j++) { ans = std::min(ans, w[i] + B[j] - B[i] + R[n] - R[j]); } } std::cout << ans; return 0; }
本文作者:胖柚の工作室
本文链接:https://www.cnblogs.com/pangyou3s/p/18112538
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步