bzoj1260,懒得复制,戳我戳我

Solution:

这种题目我不会做qwq,太菜了
区间打牌(dp)

  • 用f[l][r]表示从l到r最少需要染几次色。
  • 状态转移方程:

    1.\(f[l][r]=min(f[l][i],f[i+1][r]) (l<=i<r)\) 这段染色等于俩段分别染色,很好看出来。
    2.\(if(s[l]==s[r]) f[l][r]=min(min(f[l+1][r],f[l][r+1]),f[l+1][r-1])\)。

  • 分俩种一可以直接涂上俩端点,2是可以忽略掉左端点和右端点。
  • 第2点作用是很关键的,它会解决类似\(ABACDA\)之类的问题。忽略掉一段端点之后就可以继续找俩个端点进行染色。
  • 为什么是对的呢?因为最后无论如何都一个节点都需要涂一次,所有的同色的端点就也被涂了。

转载的博客

Code:

//It is coded by Ning_Mew on 5.22
#include<bits/stdc++.h>
using namespace std;const int maxn=55;int n;
string s;
int dp[maxn][maxn];int main(){cin>>s;n=s.length();memset(dp,0x5f,sizeof(dp));for(int i=0;i<n;i++){dp[i][i]=1;}for(int len=2;len<=n;len++){for(int i=0;i<=n-len;i++){int ss=i,tt=i+len-1;if(s[ss]==s[tt])dp[ss][tt]=min(dp[ss][tt-1],dp[ss+1][tt]);if(s[ss]==s[ss+1])dp[ss][tt]=min(dp[ss][tt],dp[ss+1][tt]);if(s[tt]==s[tt-1])dp[ss][tt]=min(dp[ss][tt],dp[ss][tt-1]);for(int k=ss;k<tt;k++)dp[ss][tt]=min(dp[ss][tt],dp[ss][k]+dp[k+1][tt]);}}printf("%d\n",dp[0][n-1]);return 0;
}

转载于:https://www.cnblogs.com/Ning-Mew/p/9072844.html

【题解】 bzoj1260: [CQOI2007]涂色paint (区间dp)相关推荐

  1. [BZOJ1260][CQOI2007]涂色paint 区间dp

    1260: [CQOI2007]涂色paint Time Limit: 30 Sec  Memory Limit: 64 MB Submit: 1575  Solved: 955 [Submit][S ...

  2. bzoj 1260: [CQOI2007]涂色paint(区间DP)

    1260: [CQOI2007]涂色paint Time Limit: 30 Sec  Memory Limit: 64 MB Submit: 1681  Solved: 1018 [Submit][ ...

  3. [CQOI2007]涂色PAINT

    题意: 给你目标字符串的状态,现可以将连续一段字符串染色,求最小的染色次数 题解: 我们定义dp[i][j]是区间i到区间j最小的涂色次数 区间dp的核心思想实际上是由一个个小区间进行合并成为大区间, ...

  4. 【动态规划】P4170 :涂色(区间dp)

    初始化: 因为要求 最小值,所有dp初始化为INF 当区间长度为1时,dp为1 枚举时先枚举小区间 #include<iostream> #include<cstring> # ...

  5. BZOJ 1260:[CQOI2007]涂色paint

    (⊙o⊙)-,常规课考试又炸了!目测此次我要完蛋了... 又玩脱了,考数学的时候装B装大了! 算了,先进入正题... 题目描述: Description 假设你有一条长度为5的木版,初始时没有涂过任何 ...

  6. P4170-[CQOI2007]涂色【区间dp】

    正题 题目链接:https://www.luogu.com.cn/problem/P4170 题目大意 给出长度为nnn的串目标串,每次可以在一连续的区间覆盖同种字符,求最少覆盖次数. 解题思路 我们 ...

  7. 【算法•日更•第三十期】区间动态规划:洛谷P4170 [CQOI2007]涂色题解

    废话不多说,直接上题:  P4170 [CQOI2007]涂色 题目描述 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符 ...

  8. 算法学习 区间dp 涂色PAINT

    题目链接: 牛客网 涂色PAINT 这是一道区间dp题,题目有小错误,字符串的长度不是5,而是小于1005的长度. 定义:f[i][j] 为区间[i,j]需要涂色最少的次数 我们可以发现这样一件事:我 ...

  9. 洛谷P4170 [CQOI2007]涂色 题解

    洛谷P4170 [CQOI2007]涂色 题解 题目链接:P4170 [CQOI2007]涂色 题意: 假设你有一条长度为 555 的木板,初始时没有涂过任何颜色.你希望把它的 555 个单位长度分别 ...

最新文章

  1. 【C++】google glog详解
  2. sublime怎么编译java_文本编辑利器:Sublime Text3 编译运行Java程序
  3. 解决安装centos 7后Windows启动项丢失
  4. Java NIO 介绍和基本demo
  5. c语言随机产生四位数,习题:随机产生N个四位正整数,将其中的素数选出,并升序排列之输…...
  6. 开源大数据周刊-第22期
  7. django写一个简单的登陆注册
  8. Oracle 10g Create Database
  9. VMware workstation 16 pro下载、安装(官网)
  10. 先锋linux 64位安装包的安装使用
  11. html中div圆角效果,div+css实现圆角即网页上常用的圆角效果
  12. matlab三角区域积分,关于复杂三角函数的二重积分,matlab该怎么求啊
  13. 【二分法】凸多边形外接圆的半径
  14. IDEA报 java 找不到符号解决办法
  15. 四、守护线程 deamon
  16. java计算某国个人所得税税率表_计算个人所得税(新版)
  17. 计算机access分数比例,[access查询]关于分数段统计问题
  18. [转]关于模糊控制的理解
  19. ICLR 2021 NAS 相关论文(包含Workshop)
  20. Google登录和内购简要说明

热门文章

  1. C#实现网页截图功能
  2. 写了一个PPT,用于公司内部培训
  3. html实时显示log,websocketd 实现浏览器查看服务器实时日志
  4. github 思维导图开元软件_画思维导图记笔记的工具软件
  5. cpu计算机兼容,电脑升级之CPU篇:给CPU升级主要是兼容性问题,其他方法也用不上...
  6. 2018usnews计算机专业排名,2018年研究生计算机专业前50排名(美USNews版)
  7. 铜陵新松工业机器人项目_投资10亿元,茶山德威工业机器人和精密模具项目动工...
  8. python画图标题_使用pyplot.matshow()函数添加绘图标题
  9. api 创建zookeeper客户端_zookeeper分布式锁原理及实现
  10. 信息技术计算机网络PPT,高中信息技术计算机网络ppt课件.ppt