P3392 涂国旗 题解
题目大意
题目真的是不说人话......
有一个国家的国旗是由一个 N * M 的方格组成的。如果想要这面国旗合法,就必须满足要求:
- 国旗从上到下必须是白色、蓝色和红色,顺序不能改变。
- 每一种颜色都至少有一行。
小a这时候捡到了一块破布,希望你通过涂颜色的方式,把破布成合法的国旗,并且要求涂的地方最少,输出有几个要涂的地方。
话说这小a......
然后这国旗好像是俄罗斯的
思路
一开始我还在想dp,想不出来,一看数据范围......
连100都不到,dp啥啊......吐槽一句,这要不是kkk出的题,肯定是红的。还橙题唉
废话说完了。思路就是暴力。但是我们需要先做一下初始化。初始化什么呢?
大家想一想,我们是要统计最少的填涂次数。所以,我们把每一行不是 "W"、"B"、"R"的代价算出来,存到三个数组里。
好,现在有了这些东西,开始正式暴力了。
我们其实只需要枚举两条分割线,分割线就是两种不同颜色中间的那条线。这样,有了两条分割线,就可以算答案,然后取最小值就行了。
ok啊,看代码!
代码
#include <iostream>
#include <cstdio>
#include <algorithm>
#define MAXN 55
using namespace std;
int n, m;
char s[MAXN][MAXN];
int cntW[MAXN], cntB[MAXN], cntR[MAXN];
int answer = 1e9;
int main () {
cin >> n >> m;
for (int i = 1; i <= n; ++i) {
int cnt1 = 0, cnt2 = 0, cnt3 = 0;
for (int j = 1; j <= m; ++j) {
cin >> s[i][j];
if (s[i][j] != 'W') cnt1 += 1;
if (s[i][j] != 'B') cnt2 += 1;
if (s[i][j] != 'R') cnt3 += 1;
cntW[i] = cnt1;
cntB[i] = cnt2;
cntR[i] = cnt3;
}
}
int c = 0;
for (int i = 2; i <= n - 1; ++i) {
for (int j = i; j <= n - 1; ++j) {
for (int a = 1; a < i; ++a) {
c += cntW[a];
}
for (int a = i; a <= j; ++a) {
c += cntB[a];
}
for (int a = j + 1; a <= n; ++a) {
c += cntR[a];
}
answer = min (answer, c);
c = 0;
}
}
cout << answer << endl;
return 0;
}
完结散花。
道路千万条,自己编码第一条。
复制棕名后,陶片放逐两行泪。
P3392 涂国旗 题解的更多相关文章
- 洛谷P3392 涂国旗
P3392 涂国旗 107通过 507提交 题目提供者kkksc03 标签 难度普及- 提交 讨论 题解 最新讨论 直接读字符会wa WA?-- 为什么不对... 跪求找错 快点给钱 这不就是荷兰 ...
- 洛谷 P3392 涂国旗
P3392 涂国旗 题目描述 某国法律规定,只要一个由N*M个小方块组成的旗帜符合如下规则,就是合法的国旗.(毛熊:阿嚏——) 从最上方若干行(>=1)的格子全部是白色的. 接下来若干行(> ...
- 洛谷⑨月月赛Round2 P3392涂国旗[DP]
题目描述 某国法律规定,只要一个由N*M个小方块组成的旗帜符合如下规则,就是合法的国旗.(毛熊:阿嚏——) 从最上方若干行(>=1)的格子全部是白色的. 接下来若干行(>=1)的格子全部是 ...
- 洛谷 P1162 填涂颜色题解
题目描述 由数字00组成的方阵中,有一任意形状闭合圈,闭合圈由数字11构成,围圈时只走上下左右44个方向.现要求把闭合圈内的所有空间都填写成22.例如:6 \times 66×6的方阵(n=6n=6) ...
- bzoj 1260涂色 题解
题面 区间dp, 我学的也不怎么好. myj说动态规划就是搜索的无限剪枝. 所以是搜了网上的代码, 看了看. 思路就是枚举区间,f数组就是存储从i到j需要的最少次数, 当然一开始他们的值要先设置一个很 ...
- 【算法•日更•第三十期】区间动态规划:洛谷P4170 [CQOI2007]涂色题解
废话不多说,直接上题: P4170 [CQOI2007]涂色 题目描述 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符 ...
- P1162填涂颜色——题解
题目描述 由数字0组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向.现要求把闭合圈内的所有空间都填写成2.例如:6×6的方阵(n=6),涂色前和涂色后的方阵如下: 0 ...
- 洛谷P4170 [CQOI2007]涂色题解
废话: 这个题我第一眼看就是贪心呐, 可能是我之前那做过一道类似的题这俩题都是关于染色的 现在由于我帅气无比的学长的指导, 我已经豁然开朗, 这题贪心不对啊, 当时感觉自己好厉害贪心都能想出来 差点就 ...
- BZOJ 4817数点涂色题解
题目链接 考试考了一道类似的题目,然后不争气的挂掉了,于是跑过来学习这道题的解法... 我还是太菜了.... 我们可以发现任意时刻,原树中颜色相同的点的集合一定是一条链, 即上面这种状态,而这种结构是 ...
- 洛谷⑨月月赛Round2 官方比赛 OI
自评: (完成时间3.5时) 第一题 模拟 虽然A了,代码敲得有点慢 第二题 最短路 第一次敲对了,又考虑数据范围和答案范围,改错了,100分改成42分.QAQ. 第三题 乱搞 80分 还可以(因为没 ...
随机推荐
- G1原理—7.G1的GC日志分析解读
大纲 1.TLAB的GC日志解读 2.YGC的GC日志解读 3.模拟YGC(单次GC及多次GC的不同场景) 4.打开实验选项查看YGC的详情日志信息 5.Mixed GC日志信息之初始标记过程 6.M ...
- Mac使用经验汇总
在此记录使用Mac的一些经验技巧. 安装brew 如果按照官网提示安装,巨慢无比,如下: /bin/bash -c "$(curl -fsSL https://raw.githubuserc ...
- Fractal pg walkthrough Easy
nmap ┌──(root㉿kali)-[~] └─# nmap -p- -A 192.168.157.233 Starting Nmap 7.94SVN ( https://nmap.org ) a ...
- Oracle数据快照设置
1.1 手册目的 该手册主要目的是用于生产环境排查问题及恢复用户误操作删除数据及程序错误导致数据丢失使用. 1.2 查看Undo表空间参数 在命令窗口查询Undo表空间的快照参数 1 show par ...
- 新格局,新生态!天翼云以国云智算底座赋能AI产业发展!
近日,中国云产业联盟暨中关村云计算产业联盟(以下简称"云联盟")主办的"首届AIGC全网小程序应用创新大会暨云联盟・移动应用专业委员会成立发布会"在中关村国家自 ...
- 10GSFP+系列光模块
10GSFP+双纤系列光模块包括SR.LRM.LR.ER.ZR模块,它们的接口类型都是LC双工,且符合IEEE802.3ae.SFF-8472和SFF-8431标准,以下是这几种光模块的具体详情. 1 ...
- 离散最大似然法与 OI
若总体属于离散型,其分布律在参数 \(\theta\) 作用下 \(P\{X=x\}=p(x;\theta),\Theta=\{\theta\}\) 的形式已知,设 \(X_1,X_2,\dots,x ...
- mybatis之日志配置
1.在mybatis-config.xml中配置 <!-- 指定 MyBatis 所用日志的具体实现,未指定时将自动查找. SLF4J | LOG4J | LOG4J2 | JDK_LOGGIN ...
- mybatis - [07] 模糊查询
题记部分 (1)mapper类 List<User> getUserLike(String value); (2)mapper.xml <!-- 写法1 --> <sel ...
- Linux - centos6.6升级openssh9.7p1
一.注意事项 1.任何会被修改的配置文件都要提前备份 2.每一步操作都要记录 3.提前预演,知道可能遇到的问题,以及对应的解决方法,能够在生产环境上升级时,更快完成操作. 4.一开始用来操作的ssh会 ...