百度SEO是谁做的网站,小城市网站建设业务,wordpress调用推荐文章代码,珠海网站设计价格P3392 涂国旗 题目描述 某国法律规定#xff0c;只要一个由N*M个小方块组成的旗帜符合如下规则#xff0c;就是合法的国旗。#xff08;毛熊#xff1a;阿嚏——#xff09; 从最上方若干行#xff08;1#xff09;的格子全部是白色的。 接下来若干行#xff08;只要一个由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 /*纯暴力枚举 O(n^4) 一层一层搜 依次更新ans找到最小值*/
#includecstdio
int n,m,ans1e9;
char a[52][52];
int main()
{scanf(%d%d,n,m);for (int i0;in;i)scanf(%s,a[i]);for (int i0;in-2;i)for (int ji1;jn-1;j){int tot0;for (int x0;xi;x)for (int y0;ym;y)if (a[x][y]!W)tot; //染白需几步 for (int xi1;xj;x)for (int y0;ym;y)if (a[x][y]!B)tot; //染蓝需几步 for (int xj1;xn;x)for (int y0;ym;y)if (a[x][y]!R)tot; //染红需几步 if (totans)anstot;}printf(%d,ans);return 0;
} 转载于:https://www.cnblogs.com/xiaoqi7/p/5905161.html