昆明建网站电话,什么网站做美式软装设计理念,网络推广的策略,长治市建设厅官方网站P3392 涂国旗 107通过507提交题目提供者kkksc03标签难度普及-提交 讨论 题解 最新讨论 直接读字符会waWA?--为什么不对。。。跪求找错快点给钱这不就是荷兰国旗问题吗题目描述 某国法律规定#xff0c;只要一个由N*M个小方块组成的旗帜符合如下规则#xff0c;就是合法的… P3392 涂国旗 107通过507提交题目提供者kkksc03标签难度普及- 提交 讨论 题解 最新讨论 直接读字符会waWA?--为什么不对。。。跪求找错快点给钱这不就是荷兰国旗问题吗 题目描述 某国法律规定只要一个由N*M个小方块组成的旗帜符合如下规则就是合法的国旗。毛熊阿嚏—— 从最上方若干行1的格子全部是白色的。 接下来若干行1的格子全部是蓝色的 剩下的行1全部是红色的现有一个棋盘状的破布分成了N行M列的格子每个格子是白色蓝色红色之一小a希望把这个布改成该国国旗方法是在一些格子上涂颜料盖住之前的颜色。 小a很懒希望涂最少的格子使这块破布成为一个合法的国旗。 输入输出格式 输入格式 第一行是两个整数N,M 接下来N行是一个矩阵矩阵的每一个小方块是W白,B蓝,R红中的一个 输出格式 一个整数表示至少需要涂多少块。 输入输出样例 输入样例#14 5
WRWRW
BWRWB
WRWRW
RWBWR 输出样例#111 说明 样例解释 目标状态是 WWWWW
BBBBB
RRRRR
RRRRR 一共需要改11个格子 对于100%的数据NM50 分析以为是dp但是仔细一想发现完全可以枚举哪一行涂什么颜色这样的话只需要在预处理的时候将第i行涂第j种颜色需要的代价求出来即可. #include cstdio
#include iostream
#include cstring
#include algorithmusing namespace std;int n, m,w[55],r[55],b[55],ans 2510;
char c[55][55];int main()
{scanf(%d%d, n, m);for (int i 1; i n; i)for (int j 1; j m; j){cin c[i][j];if (c[i][j] W){r[i];b[i];}if (c[i][j] R){b[i];w[i];}if (c[i][j] B){w[i];r[i];}}//for (int i 1; i n; i)//printf(%d %d %d\n, w[i], b[i], r[i]);for (int i 2; i n; i)for (int j i 1; j n; j){int temp 0;for (int k 1; k n; k){if (k i){temp w[k];//printf(1 %d\n, temp);}if (k i k j){temp b[k];//printf(2 %d\n, temp);}if (k j){temp r[k];//printf(3 %d\n, temp);}}ans min(temp, ans);//printf(%d\n, temp);}printf(%d, ans);//while (1);return 0;
} 转载于:https://www.cnblogs.com/zbtrs/p/5998066.html