eduCF#61 F. Clear the String /// 区间DP 消除连续一段相同字符 全部消完的最少次数
题目大意:
给定字符串 每次消除可消除连续的一段相同的字符的子串
求消除整个字符串的最少消除次数
#include <bits/stdc++.h>
using namespace std;
#define LL long long
#define INF 0x3f3f3f3f
#define mem(i,j) memset(i,j,sizeof(i))
#define inc(i,l,r) for(int i=l;i<=r;i++)
#define dec(i,r,l) for(int i=r;i>=l;i--)
const int N=+; int n, dp[N][N];
char s[N]; int main()
{
while(~scanf("%d%s",&n,s)) {
inc(i,,n-) dp[i][i]=;
inc(i,,n-) inc(j,,i-) {
dp[j][i]=INF;
inc(k,j,i-) {
// 如 “abaca”
int t=dp[j][k]+dp[k+][i-];
// “aba” + “c”
if(s[k]!=s[i]) t++;
// 此时s[k]='a'=s[i] 故先消“c”使得“aba”并上s[i]
// 那么s[i]就不需要重新再消一次
dp[j][i]=min(t,dp[j][i]);
}
}
printf("%d\n",dp[][n-]);
} return ;
}
eduCF#61 F. Clear the String /// 区间DP 消除连续一段相同字符 全部消完的最少次数的更多相关文章
- F. Clear the String(区间 DP )//每次都删除一个相同字符的子串 , 最小多少次
https://codeforces.com/contest/1132/problem/F 借鉴:https://www.cnblogs.com/chhokmah/p/10508762.html 题意 ...
- codeforces#1132 F. Clear the String(神奇的区间dp)
题意:给出一个字符串S,|S|<=500.每次操作可以删除一段连续的相同字母的子串.问,最少操作多少次可以把这个字符串变成空串. 分析:刚开始的思路是,把连续的串给删除掉,然后再....贪心.完 ...
- Codeforces Round #354 (Div. 2)-C. Vasya and String,区间dp问题,好几次cf都有这种题,看来的好好学学;
C. Vasya and String time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Gym - 101196:F Removal Game(区间DP)
题意:一个环状数组,给定可以删去一个数,代价的相邻两个数的gcd,求最小代价. 思路:区间DP即可,dp[i][j]表示[i,j]区间只剩下i和j时的最小代价,那么dp[i][j]=min dp[i ...
- HDU 4632 Palindrome subsequence(区间dp,回文串,字符处理)
题目 参考自博客:http://blog.csdn.net/u011498819/article/details/38356675 题意:查找这样的子回文字符串(未必连续,但是有从左向右的顺序)个数. ...
- hdu_2476_String painter(区间DP)
题目链接:hdu_2476_String painter 题意: 有a,b两字符串,现在你有一个刷子,每次可以任选一个区间,使这个区间变成你想要的字符,现在让你将a变成b,问最少刷多少次 题解: 考虑 ...
- BZOJ 2121: 字符串游戏 区间DP + 思维
Description BX正在进行一个字符串游戏,他手上有一个字符串L,以及其他一些字符串的集合S,然后他可以进行以下操作:对 于一个在集合S中的字符串p,如果p在L中出现,BX就可以选择是否将其删 ...
- Educational Codeforces Round 61 F 思维 + 区间dp
https://codeforces.com/contest/1132/problem/F 思维 + 区间dp 题意 给一个长度为n的字符串(<=500),每次选择消去字符,连续相同的字符可以同 ...
- Codeforces Gym 100002 Problem F "Folding" 区间DP
Problem F "Folding" Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/ ...
随机推荐
- vue轮播,展示pdf
vue轮播,展示pdf 根据左侧图片格式,右侧展示相应的pdf文件与图片.(vue中不支持pdf格式,pdf文件要放在static文件里):代码如下: <template> <!-- ...
- Cococs2d-x学习路线
| 版权声明:本文为博主原创文章,未经博主允许不得转载. Cocos2D-X推荐书: Cocos2d-x权威指南
- Spring Boot集成Mybatis双数据源
这里用到了Spring Boot + Mybatis + DynamicDataSource配置动态双数据源,可以动态切换数据源实现数据库的读写分离. 添加依赖 加入Mybatis启动器,这里添加了D ...
- ArcMap属性表操作接口ITableWindow3
ITableWindow3 tableWindow3 = new TableWindowClass { //Layer = laye ...
- call和apply实现的继承
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- document.createDocumentFragment()的用法
createDocumentFragment有什么作用呢? 调用多次document.body.append(),每次都要刷新页面一次.效率也就大打折扣了,而使用document_createDocu ...
- android中的BroadCastReceiver
BroadCastReceiver组件本质是一种全局的监听器,用于监听系统全局的广播消息.由于BroadCastReceiver是一种全局的监听器,因此他可以非常方便的实现系统之间不同组件之间的通信. ...
- ES5新增方法(数组,字符串,对象)
一.数组方法 迭代(遍历)方法:forEach().map().filter().some().every(): 1. array. forEach(function(value,index,arr) ...
- KiCAD泪滴
KiCAD泪滴 KiCAD没有自带的补泪滴功能,必须先下载一个插件,然后才能进行泪滴操作 链接 提取码:ey8o 1.下载泪滴插件,解压后将整个文件夹复制到目录 C:\Program Files\K ...
- 39th 迷迷糊糊 二豆玩不转了
今天学的语法 1. # {} . format()的传送作用 请从键盘获取一个整数,求他的平方根,要求: 1 如果这个整数是大于等于0,则直接打印其平方根 2 否则, 打印其绝对值的平方根 x ...