公元 8102\texttt{8102}8102年,qls成为了闻风丧胆的黑魔法师。
众所周知,qls拥有让一串连续的数字变成同一个数的邪恶魔法。例如,qls有一串数字 133456\texttt{133456}133456,她可以选择 133456\texttt{133456}133456 中的 345\texttt{345}345 变成 6\texttt{6}6,那么这串数字就会变成 136666\texttt{136666}136666
来自西方的国王yuki对qls的邪恶魔法十分感兴趣,qls想知道,如果他起初有一个长为 nnn 的全零数字,那么他最少要使用多少次魔法才能使这个数字变成xxx。

#include<bits/stdc++.h>
#define mes(a, b) memset(a, b, sizeof a)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int maxn = 300+10;
const ll inf = 1e18;
int T;
int n;
char a[maxn];
int dp[maxn][maxn];
int main(){scanf("%d%s", &n, a+1);for(int i = 0; i <= n; i++){for(int j = 0; j <= n; j++){dp[i][j] = n+1;}dp[i][i] = 1;}for(int d = 2; d <= n; d++){for(int l = 1, r = l+d-1; r <= n; l++, r++){for(int k = l; k <= r; k++){if(a[l] == a[k]) dp[l][r] = min(dp[l][r], dp[l+1][k]+dp[k+1][r]);else dp[l][r] = min(dp[l][r], dp[l+1][k]+dp[k+1][r]+1);if(a[r] == a[k]) dp[l][r] = min(dp[l][r], dp[l][k-1]+dp[k][r]);else dp[l][r] = min(dp[l][r], dp[l][k-1]+dp[k][r]+1);}if(a[l] == a[r]) dp[l][r] = min(min(dp[l][r-1], dp[l+1][r]), dp[l][r]);}}printf("%d\n", dp[1][n]);return 0;
}

qls的魔法(区间dp)相关推荐

  1. cdoj 1131 男神的礼物 区间dp

    男神的礼物 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1131 Descr ...

  2. POJ 2955 Brackets (区间DP)

    题目链接:http://poj.org/problem?id=2955 Brackets Time Limit: 1000MS   Memory Limit: 65536K Total Submiss ...

  3. 0x53. 动态规划 - 区间DP(习题详解 × 8)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 文章目录 0x53. 动态规划 - 区间DP Problem A. 最优矩阵链乘 Problem B. ...

  4. UVA1626 括号序列 Brackets sequence(区间DP匹配括号,输出匹配方案)

    整理的算法模板合集: ACM模板 UVA1626 Brackets sequence 我们将正规括号序列定义如下: 空序列是正规括号序列. 如果 SSS 是一个正规括号序列,那么 (S) 和 [S] ...

  5. UVA10003 切木棍 Cutting Sticks(区间DP、细节)

    整理的算法模板合集: ACM模板 本题其实就是一个区间DP 的模板题,总长度为len,有n个切割点,也就是说能被切割成n+1段,所以左边界是0,有边界是n + 1,所以答案就是f[0][n + 1]. ...

  6. 【动态规划】区间DP - 最优矩阵链乘(另附POJ1651Multiplication Puzzle)

    最优矩阵链乘(动态规划) 一个n∗mn*mn∗m的矩阵由 nnn 行 mmm 列共 n∗mn*mn∗m 排列而成.两个矩阵A和B可以相乘当且仅当A的列数等于B的行数.一个nm的矩阵乘mp的矩阵,运算量 ...

  7. 【每日DP】day13、P3147 [USACO16OPEN]262144 (区间DP,2048游戏)难度⭐⭐⭐★

    P3147 [USACO16OPEN]262144 P 想到合并,自然就想到区间dp,一个被合成的数之前是一个区间,并且由两个数比它小 111 的区间合成.可麻烦的是,我们并不知道之前的两个区间长度各 ...

  8. poj1651(区间dp)

    题目连接:http://poj.org/problem?id=1651 题意:给出一组N个数,每次从中抽出一个数(第一和最后一个不能抽),该次的得分即为抽出的数与相邻两个数的乘积.直到只剩下首尾两个数 ...

  9. HDU 5115 Dire Wolf ——(区间DP)

    比赛的时候以为很难,其实就是一个区间DP= =..思路见:点我. 区间DP一定要记住先枚举区间长度啊= =~!因为区间dp都是由短的区间更新长的区间的,所以先把短的区间更新完.. 代码如下: 1 #i ...

  10. 编程之美2015资格赛 题目2 : 回文字符序列 [ 区间dp ]

    传送门 题目2 : 回文字符序列 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定字符串,求它的回文子序列个数.回文子序列反转字符顺序后仍然与原序列相同.例如字符串ab ...

最新文章

  1. 使用函数对4*4的二维数组转置
  2. Linux┊理解devfs、sysfs、udev、tmpfs
  3. PHP几个快速读取大文件例子
  4. connection refused_ERR_CONNECTION_REFUSED
  5. Java核心类库篇2——lang
  6. python中常见的漏洞_Python 中的 10 个常见安全漏洞,以及如何避免(上)
  7. docker 安全性_未来的Docker安全性
  8. laravel插入数据时报 502 Bad Gateway
  9. maven夹包引入的速度问题
  10. UIApplication深入学习 调用程序开自身软件 发短信 打电话等
  11. 行星级计算机,称霸两千余年的最快“计算机”——我国的算盘,两弹一星都靠它...
  12. java redis 队列 抢购_redis使用watch秒杀抢购实现思路
  13. 张量的基本概念及应用
  14. 《程序员情商》沟通能力练习基本功——趣味绕口令
  15. 2020-11-04 浏览器主页被毒霸劫持的解决方案
  16. 解决 DevExpress21 控件不在工具箱显示问题
  17. c语言中常量单双引号,C语言常量中字元与字串 除了单引号与双引号的区别外,还有什么不同。...
  18. Filecoin(FIL) 通过PHP生成 f1 开头的地址
  19. icloud连接服务器时出现问题_iphone8 icloud连接服务器时出现问题
  20. SMP、NUMA、MPP模型介绍

热门文章

  1. DIY基于RTD2662的LVDS屏幕驱动
  2. activiti 流程实例与业务关联
  3. 控制系统仿真技术(二)-连续系统的数字仿真二
  4. 借了十几万的 p2p 跑路了。。。
  5. 当前人类社会面临的人工智能安全问题有哪些?
  6. 【Oracle】Oracle安装监听程序
  7. STM32F103最小系统电路 实测成功!
  8. MYSQL内存请求一直不释放_MySQL内存不释放分析
  9. 【华人学者风采】宋晓东 加州大学伯克利分校
  10. html弹框确定后才跳转链接,怎么用div弹出一个确认页面,点击确定跳到另外一个页面,取消则div隐藏...