P3392 涂国旗

    • 107通过
    • 507提交
  • 题目提供者kkksc03
  • 标签
  • 难度普及-

提交  讨论  题解

最新讨论

  • 直接读字符会wa
  • WA?--
  • 为什么不对。。。
  • 跪求找错
  • 快点给钱
  • 这不就是荷兰国旗问题吗

题目描述

某国法律规定,只要一个由N*M个小方块组成的旗帜符合如下规则,就是合法的国旗。(毛熊:阿嚏——)

  • 从最上方若干行(>=1)的格子全部是白色的。

  • 接下来若干行(>=1)的格子全部是蓝色的

  • 剩下的行(>=1)全部是红色的

现有一个棋盘状的破布,分成了N行M列的格子,每个格子是白色蓝色红色之一,小a希望把这个布改成该国国旗,方法是在一些格子上涂颜料,盖住之前的颜色。

小a很懒,希望涂最少的格子,使这块破布成为一个合法的国旗。

输入输出格式

输入格式:

第一行是两个整数,N,M

接下来N行是一个矩阵,矩阵的每一个小方块是'W'(白),'B'(蓝),'R'(红)中的一个

输出格式:

一个整数,表示至少需要涂多少块。

输入输出样例

输入样例#1:

4 5
WRWRW
BWRWB
WRWRW
RWBWR
输出样例#1:

11

说明

样例解释:

目标状态是

WWWWW
BBBBB
RRRRR
RRRRR

一共需要改11个格子

对于100%的数据,N,M<=50

分析:以为是dp,但是仔细一想,发现完全可以枚举哪一行涂什么颜色,这样的话只需要在预处理的时候将第i行涂第j种颜色需要的代价求出来即可.

#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm> using namespace std; int n, m,w[],r[],b[],ans = ;
char c[][]; int main()
{
scanf("%d%d", &n, &m);
for (int i = ; i <= n; i++)
for (int j = ; 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 = ; i < n; i++)
for (int j = i + ; j <= n; j++)
{
int temp = ;
for (int k = ; 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 ;
}

洛谷P3392 涂国旗的更多相关文章

  1. 洛谷 P3392 涂国旗

    P3392 涂国旗 题目描述 某国法律规定,只要一个由N*M个小方块组成的旗帜符合如下规则,就是合法的国旗.(毛熊:阿嚏——) 从最上方若干行(>=1)的格子全部是白色的. 接下来若干行(> ...

  2. 洛谷P4155 [SCOI2015]国旗计划(贪心,树形结构,基数排序)

    洛谷题目传送门 \(O(n)\)算法来啦! 复杂度优化的思路是建立在倍增思路的基础上的,看看楼上几位巨佬的描述吧. 首先数组倍长是一样的.倍增法对于快速找到\(j\)满足\(l_j+m\le r_i\ ...

  3. 洛谷⑨月月赛Round2 P3392涂国旗[DP]

    题目描述 某国法律规定,只要一个由N*M个小方块组成的旗帜符合如下规则,就是合法的国旗.(毛熊:阿嚏——) 从最上方若干行(>=1)的格子全部是白色的. 接下来若干行(>=1)的格子全部是 ...

  4. [bzoj4444] [loj#2007] [洛谷P4155] [Scoi2015] 国旗计划

    Description \(A\) 国正在开展一项伟大的计划--国旗计划.这项计划的内容是边防战士手举国旗环绕边境线奔袭一圈.这项计划需要多名边防战士以接力的形式共同完成,为此,国土安全局已经挑选了 ...

  5. 洛谷⑨月月赛Round2 官方比赛 OI

    自评: (完成时间3.5时) 第一题 模拟 虽然A了,代码敲得有点慢 第二题 最短路 第一次敲对了,又考虑数据范围和答案范围,改错了,100分改成42分.QAQ. 第三题 乱搞 80分 还可以(因为没 ...

  6. 洛谷P1162—填涂颜色

    这应该是是第一次记录洛谷题库里的题目吧: 题目描述 由数字00组成的方阵中,有一任意形状闭合圈,闭合圈由数字11构成,围圈时只走上下左右44个方向.现要求把闭合圈内的所有空间都填写成22.例如:6 \ ...

  7. 洛谷P3703 [SDOI2017]树点涂色(LCT,dfn序,线段树,倍增LCA)

    洛谷题目传送门 闲话 这是所有LCT题目中的一个异类. 之所以认为是LCT题目,是因为本题思路的瓶颈就在于如何去维护同颜色的点的集合. 只不过做着做着,感觉后来的思路(dfn序,线段树,LCA)似乎要 ...

  8. 洛谷 P1656 炸铁路

    P1656 炸铁路 题目提供者kkksc03 标签图论搜索/枚举洛谷原创 难度普及/提高- 题目描述 因为某国被某红色政权残酷的高压暴力统治.美国派出将军uim,对该国进行战略性措施,以解救涂炭的生灵 ...

  9. BZOJ1079或洛谷2476 [SCOI2008]着色方案

    一道记忆化搜索 BZOJ原题链接 洛谷原题链接 发现对于能涂木块数量一样的颜色在本质上是一样的,所以可以直接压在一个状态,而这题的数据很小,直接暴力开\(6\)维. 定义\(f[a][b][c][d] ...

随机推荐

  1. HDU-2243 考研路茫茫——单词情结(AC自动机)

    题目大意:给n个单词,长度不超过L的单词有多少个包含n个单词中的至少一个单词. 题目分析:用长度不超过L的单词书目减去长度在L之内所有不包含任何一个单词的书目. 代码如下: # include< ...

  2. 程序员写的东西出了bug,造成了损失谁来承担?

    这是个持续多年的话题了,很多大公司,尤其是牛逼的独立分包公司(开发公司)都会有代码审核和严格QA程序,一般的公司就很难说咯,在法律上目前还没有完全支持处罚程序员bug经济损失的判例(国内如此),国外也 ...

  3. 用crontab跑定时任务[转]

    前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个 ...

  4. js 循环切换图片

    function changeLot(){ var minIndex = 1; var maxIndex = 100; var curIndex = 10; var src = $("ul ...

  5. C#与C/C++的交互

    引擎内核用C++为了保证运行速度,程序员可以使用C#来编写其他的业务逻辑,可以使用.NET类库中的绝大多数类,这样来降低开发难度,同时也降低了入门难度,可以吸引更多的.NET程序.

  6. redis 3.2.6 on ubuntu 14.04

    1. official site: https://github.com/antirez/redis/releases 2. compile and setup tar zxf redis-3.2.6 ...

  7. mysql总结

    //查询日期之前的差距     select user_name ,    from_unixtime(user_lastlogin_time),now() ,        year(now())- ...

  8. 基于 Annotation 拦截的 Spring AOP 权限验证方法

    基于 Annotation 拦截的 Spring AOP 权限验证方法 转自:http://www.ibm.com/developerworks/cn/java/j-lo-springaopfilte ...

  9. 【python】构造字典类型字典

    字典类型字典:就是包含字典类型的字典,如{'sss': {'ss': 'dddsdsdsd'}} 构造方式: a={} b="sss" a[b]={} a[b]['ss'] = & ...

  10. Ajax 提交session实效跳转到完整的登陆页面

    在spring security 中 Ajax提交时,session超时,局部加载登陆页面,为解决这个问题,重写ajax提交,返回的是modeview或者没有制定datatype时; 如果检测到加载到 ...