涂色PAINT:区间dp

https://ac.nowcoder.com/acm/problem/19909

思路:和取数游戏一样设置dp状态。

设置状态: 表示区间涂[i,j]需要的最少次数。

状态转移:

如果s[i] = s[j],那么在涂[i+1,j]的时候和在涂[i,j-1]的时候可以一起把s[i]或者s[j]涂上。所以

如果s[i] != s[j],分成两段来求,那么我们枚举[i,j]里面的每个点,假设为k,那么

赋初值:当i=j的时候dp[i][j] = 1.

#include <bits/stdc++.h>
#define ull unsigned long long
#define ll long long
const int inf = 0x3f3f3f3f;
const int mod = 10007;
const int N = 2e5+7;
const int ds = 1e8+7;
const double PI = 3.141592653589793238462643383;using namespace std;char s[55];
int dp[555][555];
void solve() {int n;cin >> s;n = strlen(s);for(int i = 0; i < n*10; i++)for(int j = 0; j < n*10; j++) dp[i][j] = 1e9;for(int i = n-1; i >= 0; i--){for(int j = i; j < n; j++){if(i == j) dp[i][j] = 1;else{if(s[i] == s[j]) dp[i][j] = min(dp[i+1][j],dp[i][j-1]);else{for(int k = i; k < j; k++){dp[i][j] = min(dp[i][j],dp[i][k]+dp[k+1][j]);}}}//cout << i << ' ' << j << " " << dp[i][j] << endl;}}cout << dp[0][n-1] << endl;
}int main() {
//  int t;
//  scanf("%d",&t);
//  while(t--)solve();return 0;
}

【每日一题】涂色PAINT相关推荐

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

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

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

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

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

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

  4. [CQOI2007]涂色PAINT

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

  5. BZOJ 1260:[CQOI2007]涂色paint

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

  6. 【题解】 bzoj1260: [CQOI2007]涂色paint (区间dp)

    bzoj1260,懒得复制,戳我戳我 Solution: 这种题目我不会做qwq,太菜了 区间打牌(dp) 用f[l][r]表示从l到r最少需要染几次色. 状态转移方程: 1.\(f[l][r]=mi ...

  7. Bugku CTF 每日一题 三色绘恋

    三色绘恋 打开是一个压缩包 发现需要密码 用winhex打开后发现有个0900 所以应该是伪加密 09改为00 打开压缩包发现是一张图片 用winhex打开 有异样 猜测是藏了东西 用linux 下的 ...

  8. 方格涂色(冬季每日一题 30)

    给定一个 n × n n×n n×n 的方格矩阵,最初所有方格都是白色的. 现在需要将矩阵边界上的一些方格涂成黑色,从而使得: 最上一行恰好有 U U U 个方格是黑色的. 最右一列恰好有 R R R ...

  9. ​LeetCode刷题实战276:栅栏涂色

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

最新文章

  1. java字符串 直接能网络传输吗_atitit.二进制数据无损转字符串网络传输
  2. linux主设备编号从0到多少,Linux驱动开发之主设备号找驱动,次设备号找设备
  3. ASP.NET的错误处理机制
  4. CSS学习04之层次选择器
  5. linux的swap
  6. 截屏当前界面_华为手机居然有这3种神奇的截屏方法,用过后,我就再也离不开了...
  7. 【转】Linux 下修改Tomcat使用的JVM内存大小
  8. C#图解教程读书笔记(数组)
  9. visual studio 代码提示插件_程序员请收好:10个非常有用的Visual Studio Code插件
  10. vue3 axios 封装
  11. (转载)SoftIce的安装、配置以及一些基本操作
  12. 英文版权声明_传统文化 | 中国著名旅游景点的英文表达—上海
  13. Go语言Web项目搭建
  14. vue-cli3访问public文件夹静态资源的报错解决
  15. 「Feign-Http」 Feign请求http接口
  16. 基于Sigma protocol实现的零知识证明protocol集锦
  17. Java系列技术之JavaWeb入门-钟洪发-专题视频课程
  18. 2021年化工自动化控制仪表复审模拟考试及化工自动化控制仪表实操考试视频
  19. vue 分页查询条件的缓存
  20. 3D射击游戏作弊视频课程-卢嘉文-专题视频课程

热门文章

  1. Unity开发基础——使用字符串学习笔记
  2. Clion安装及相关环境(MinGW和OpenOCD)的配置及利用Clion点亮led灯
  3. 傲游浏览器5241android,傲游浏览器Android平板版 三大功能图解妙用
  4. hibernate配置映射的问题
  5. 如何使用VLC媒体播放软件下载网页上视频?
  6. java 小球抛物线_小球抛物线运动
  7. vue+elementUI+vue-i18n实现中英文切换。
  8. ABAP 计算汇率的方法
  9. 论文泛读笔记《Neural Document Summarization by Jointly Learning to Score and Select Sentences》
  10. glib 交叉编译记录