SRM 698 div1 RepeatString
250pts RepeatString
题意:问最少修改多少次将一个字符串修改为AA的形式。可以插入一个字符,删除一个字符,修改字符。
思路:枚举分界点,然后dp一下。
1 /* 2 * @Author: mjt 3 * @Date: 2018-10-17 19:50:16 4 * @Last Modified by: mjt 5 * @Last Modified time: 2018-10-17 20:08:04 6 */ 7 #include<bits/stdc++.h> 8 using namespace std; 9 typedef long long LL; 10 11 const int N = 1005; 12 13 int f[N][N]; 14 15 class RepeatString{ 16 public: 17 int solve(int p,string s) { 18 memset(f, 0x3f, sizeof(f)); 19 string a, b; 20 a += '#', b += '#'; 21 for (int i=0; i<=p; ++i) a += s[i]; 22 for (int j=p+1; j<(int)s.size(); ++j) b += s[j]; 23 for (int i=0; i<(int)a.size(); ++i) f[i][0] = i; 24 for (int i=0; i<(int)b.size(); ++i) f[0][i] = i; 25 26 for (int i=1; i<(int)a.size(); ++i) 27 for (int j=1; j<(int)b.size(); ++j) { 28 f[i][j] = min(f[i][j], min(f[i - 1][j], f[i][j - 1]) + 1); 29 f[i][j] = min(f[i][j], f[i - 1][j - 1] + (a[i] != b[j])); 30 } 31 return f[a.size() - 1][b.size() - 1]; 32 } 33 int minimalModify(string s) { 34 int ans = s.size(); 35 for (int i=0; i<(int)s.size(); ++i) ans = min(ans, solve(i, s)); 36 return ans - 1; 37 } 38 };
转载于:https://www.cnblogs.com/mjtcn/p/9806754.html
SRM 698 div1 RepeatString相关推荐
- topcoder srm 698 div1 -3
1.定义重复串$S=T+T$,即$S$可以表示成一个串的叠加.给定一个串$s$,可以通过删除字符.修改字符.增加字符来使得其变为重复串.问最少的次数. 思路:首先将$s$分成个串$s_{0},s_{1 ...
- TC SRM 655 Div1 Level 3 题解
TC SRM 655 Div1 Level 3 题解 题目传送门 dp+几何 首先可以发现凸包是顺时针排列的一些线段构成的.我们可以预处理每一个蓝点是否都在一个线段 r [ i ] → r [ j ] ...
- SRM 583 DIV1
A 裸最短路. 1 class TravelOnMars { 2 public: 3 int minTimes(vector <int>, int, int); 4 }; 5 vector ...
- SRM 590 DIV1
转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents by---cxlove 水水更健康,终于回到1800+了... DIV2 ...
- topcoder srm 691 div1 -3
1.给定一个$n$个顶点$n$个边的图,边是$(i,a_{i})$,顶点编号$[0,n-1]$.增加一个顶点$n$,现在选出一个顶点集$M$,对于任意的在$M$中 的顶点$x$,去掉边$(x,a_{x ...
- SRM 563 Div1 500 SpellCards
Description 有n张符卡排成一个队列,每张符卡有两个属性,等级lili和伤害didi. 你可以做任意次操作,每次操作为以下二者之一: 把队首的符卡移动到队尾. 使用队首的符卡,对敌人造成di ...
- topcoder srm 706 div1
1.给定一个迷宫,点号表示不可行,井号表示可行.现在可以改变其中的一些井号的位置.问最少改变多少个井号可以使得从左上角到右下角存在路径. 思路:设高为$n$,宽为$m$,若井号的个数$S$小于$n+m ...
- topcoder srm 694 div1 -3
1.给出$n$个数字,将其分成三个非空的组,每组的权值为该组所有数字的抑或.选择一种分法使得三组的权值和最大? 思路:记录前两组的权值且三组有没有数字时第三组的值.(当前两组的值知道时第三组的权值是确 ...
- topcoder srm 330 div1
problem1 link 直接模拟. import java.util.*; import java.math.*; import static java.lang.Math.*;public cl ...
最新文章
- 资源 | UC Berkeley CS 294深度强化学习课程(附视频、学习资料)
- Android 中的GC资料网站
- JAVA四圣降临,和平精英四圣降临模式攻略
- python3.5链接SQL2017,读取数据库中的数据
- po 时不生效时, 不要用点方法
- 技巧:使用User Control做HTML生成
- [导入]ASP常用函数:doAlert()
- tomcat 8.5 远程登录管理页面
- 数据分析、python速成班?包就业?扒一扒数据行业黑幕
- flash开发android应用程序,利用Flash Professional CS5.5开发Android应用
- Qt phonon 多媒体框架
- python 学习(八—1) 项目:生成随机的测试试卷文件
- 程序员:走路也可以帮你拥有完美的翘臀!
- 微信小程序给echarts图表动态赋值
- Web服务器群集——编译安装Apache构建虚拟主机
- 文档已完成加载后执行document write整个 HTML 页面将被覆盖
- 魔力宝贝高清单机计划(二) 地图转为tiled map
- 最新模版兔-基于laysns系统开发2.55可用
- 九方智投是正规公司吗?一起聊聊九方智投
- baocms伪静态_PHP源码:BAOCMS v5.0白金版 本地O2O生活电商门户系统+微信+同步wap手机版宝...
热门文章
- 连续赋值与求值顺序var a = {n:1};a.x = a = {n:2}; alert(a.x);
- CSS之七个高度有效的媒体查询技巧
- CSS之REM和EM的区别
- mounted钩子函数_Vue 探索之路——生命周期和钩子函数的一些理解
- php 数据类型伪类型,PHP之伪类型与变量
- java圆形进度条_可拖拽圆形进度条组件(支持移动端)
- 深度学习之数学基础(临时记录)
- 探索未知种族之osg类生物---呼吸分解之更新循环一
- cin和scanf读入速度
- Dubbo xml配置 和注解配置 写法