CQOI2007 涂色 paint (区间dp)
听说这道题是当年省选题
于是兴致勃勃拿来做了做
至于如何想到思路...
事实上没想象中那么简单...
脑阔挺疼的...
(一开始都没看出来是区间dp)
想到可以区间dp,然后就似乎没啥大问题
枚举区间dp[i][j]的时候,如果i j一样那就好说,相当于当初某一次涂的时候多往外涂一格就好
如果i j不一样?我反而在这里懵了
但我误打误撞就给正解写出来了
想不到正解居然这么简单???
认真思考之后大体明白了
因为不能像i==j那样直接多涂一个
所以就可以直接区间枚举了...
总有一个是最优的
#include<cstdio> int min(int a,int b){return a<b?a:b;} ]; ],dp[][]; int main() { scanf("%s",colin); int n=strlen(colin); ;i<n;i++) { col[i+]=colin[i]; } memset(dp,0x3f,sizeof(dp)); ;i<=n+;i++)dp[i][i]=; ;d<n;d++) { ;i+d<=n;i++) { ],dp[i+][i+d]); else for(int k=i;k<i+d;k++) { dp[i][i+d]=min(dp[i][i+d],dp[i][k]+dp[k+][i+d]); } } } printf(][n]); ; }
以上,有点后悔出生太晚了
2018NOIP简直毒瘤啊
(NOIP=POI*N)
再看看当年省选...
做完这道题之后你可以再去看看
没错他们完全一样
CQOI2007 涂色 paint (区间dp)的更多相关文章
- BZOJ 1260: [CQOI2007]涂色paint( 区间dp )
区间dp.. dp( l , r ) 表示让 [ l , r ] 这个区间都变成目标颜色的最少涂色次数. 考虑转移 : l == r 则 dp( l , r ) = 1 ( 显然 ) s[ l ] = ...
- [BZOJ1260][CQOI2007]涂色paint 区间dp
1260: [CQOI2007]涂色paint Time Limit: 30 Sec Memory Limit: 64 MB Submit: 1575 Solved: 955 [Submit][S ...
- 【bzoj1260】[CQOI2007]涂色paint 区间dp
题目描述 给出一个序列,每次可以给一段染成同一种颜色,问最少要染多少次能够染成给定方案. 输入 输入仅一行,包含一个长度为n的字符串,即涂色目标.字符串中的每个字符都是一个大写字母,不同的字母代表不同 ...
- B1260 [CQOI2007]涂色paint 区间dp
这个题和我一开始想的区别不是很大,但是要我独自做出来还是有一些难度. 每一次涂色 只有这两种可能: 1) 把一段未被 覆盖过的区间 涂成 * 色 2) 把一段被一种颜色覆盖的区间涂成 * 色 (并且 ...
- 【BZOJ-1260】涂色paint 区间DP
1260: [CQOI2007]涂色paint Time Limit: 30 Sec Memory Limit: 64 MBSubmit: 1147 Solved: 698[Submit][Sta ...
- 1260. [CQOI2007]涂色【区间DP】
Description 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符串表示这个目标:RGBGR. 每次你可以把一段连续 ...
- BZOJ_1260_[CQOI2007]涂色paint _区间DP
BZOJ_1260_[CQOI2007]涂色paint _区间DP 题意: 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字 ...
- [BZOJ 1260][CQOI2007]涂色paint 题解(区间DP)
[BZOJ 1260][CQOI2007]涂色paint Description 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为 ...
- BZOJ1260 CQOI2007 涂色paint 【区间DP】
BZOJ1260 CQOI2007 涂色paint Description 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字 ...
随机推荐
- Oracle存储过程(增、删、改)写法、oracle执行存储过程
Oracle存储过程(增.删.改)写法 发布时间: 2010-3-24 11:07 作者: ZHF 来源: 51Testing软件测试网采编 字体: 小 中 大 | 上一篇 下一篇 ...
- [翻译]NUnit---Exception && Utility Methods (六)
网址:http://www.cnblogs.com/kim01/archive/2013/04/01/2994378.html Exception Asserts (NUnit 2.5) Assert ...
- 可视图linux--ubuntu的安装以及tool的安装
1.下载ubuntu:http://cn.ubuntu.com/download/ 右键然后选择复制链接地址,然后将这个地址粘贴到迅雷,下载速度会比浏览器下载快. 2.创建虚拟机,安装ubuntu-- ...
- bzoj3450 Easy(概率期望dp)
3450: Tyvj1952 Easy Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 876 Solved: 648[Submit][Status] ...
- 启动VMware环境下的Linux操作系统,添加新分区
启动VMware环境下的Linux操作系统,添加新分区,需要root账号身份. 3.1 [fdisk -l] 最大分区为/dev/sda3,说明新创建的分区将会是sda4 3.2 输入[fdisk / ...
- JavaScript 正则表达式(转自 mozilla)
正则表达式是被用来匹配字符串中的字符组合的模式.在JavaScript中,正则表达式也是对象. 这种模式可以被用于 RegExp 的 exec 和 test 方法以及 String 的 match.r ...
- 403 Frog Jump 青蛙过河
一只青蛙想要过河. 假定河流被等分为 x 个单元格,并且在每一个单元格内都有可能放有一石子(也有可能没有). 青蛙可以跳上石头,但是不可以跳入水中.给定石子的位置列表(用单元格序号升序表示), 请判定 ...
- 微信JSSDK支付
var appId,timeStamp,nonceStr,package,signType,paySign; function goumai(){ $.confirm({ title: '确认购买', ...
- js解析地址栏参数
/** * 获取地址栏中url后面拼接的参数 * eg: * 浏览器地址栏中的地址:http://1.1.1.1/test.html?owner=2db08226-e2fa-426c-91a1-66e ...
- poj1778 All Discs Considered
思路: 拓扑排序.贪心. 实现: #include <bits/stdc++.h> using namespace std; vector<]; int n1, n2; inline ...