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相关推荐

  1. topcoder srm 698 div1 -3

    1.定义重复串$S=T+T$,即$S$可以表示成一个串的叠加.给定一个串$s$,可以通过删除字符.修改字符.增加字符来使得其变为重复串.问最少的次数. 思路:首先将$s$分成个串$s_{0},s_{1 ...

  2. TC SRM 655 Div1 Level 3 题解

    TC SRM 655 Div1 Level 3 题解 题目传送门 dp+几何 首先可以发现凸包是顺时针排列的一些线段构成的.我们可以预处理每一个蓝点是否都在一个线段 r [ i ] → r [ j ] ...

  3. SRM 583 DIV1

    A 裸最短路. 1 class TravelOnMars { 2 public: 3 int minTimes(vector <int>, int, int); 4 }; 5 vector ...

  4. SRM 590 DIV1

    转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 水水更健康,终于回到1800+了... DIV2 ...

  5. topcoder srm 691 div1 -3

    1.给定一个$n$个顶点$n$个边的图,边是$(i,a_{i})$,顶点编号$[0,n-1]$.增加一个顶点$n$,现在选出一个顶点集$M$,对于任意的在$M$中 的顶点$x$,去掉边$(x,a_{x ...

  6. SRM 563 Div1 500 SpellCards

    Description 有n张符卡排成一个队列,每张符卡有两个属性,等级lili和伤害didi. 你可以做任意次操作,每次操作为以下二者之一: 把队首的符卡移动到队尾. 使用队首的符卡,对敌人造成di ...

  7. topcoder srm 706 div1

    1.给定一个迷宫,点号表示不可行,井号表示可行.现在可以改变其中的一些井号的位置.问最少改变多少个井号可以使得从左上角到右下角存在路径. 思路:设高为$n$,宽为$m$,若井号的个数$S$小于$n+m ...

  8. topcoder srm 694 div1 -3

    1.给出$n$个数字,将其分成三个非空的组,每组的权值为该组所有数字的抑或.选择一种分法使得三组的权值和最大? 思路:记录前两组的权值且三组有没有数字时第三组的值.(当前两组的值知道时第三组的权值是确 ...

  9. topcoder srm 330 div1

    problem1 link 直接模拟. import java.util.*; import java.math.*; import static java.lang.Math.*;public cl ...

最新文章

  1. 资源 | UC Berkeley CS 294深度强化学习课程(附视频、学习资料)
  2. Android 中的GC资料网站
  3. JAVA四圣降临,和平精英四圣降临模式攻略
  4. python3.5链接SQL2017,读取数据库中的数据
  5. po 时不生效时, 不要用点方法
  6. 技巧:使用User Control做HTML生成
  7. [导入]ASP常用函数:doAlert()
  8. tomcat 8.5 远程登录管理页面
  9. 数据分析、python速成班?包就业?扒一扒数据行业黑幕
  10. flash开发android应用程序,利用Flash Professional CS5.5开发Android应用
  11. Qt phonon 多媒体框架
  12. python 学习(八—1) 项目:生成随机的测试试卷文件
  13. 程序员:走路也可以帮你拥有完美的翘臀!
  14. 微信小程序给echarts图表动态赋值
  15. Web服务器群集——编译安装Apache构建虚拟主机
  16. 文档已完成加载后执行document write整个 HTML 页面将被覆盖
  17. 魔力宝贝高清单机计划(二) 地图转为tiled map
  18. 最新模版兔-基于laysns系统开发2.55可用
  19. 九方智投是正规公司吗?一起聊聊九方智投
  20. baocms伪静态_PHP源码:BAOCMS v5.0白金版 本地O2O生活电商门户系统+微信+同步wap手机版宝...

热门文章

  1. 连续赋值与求值顺序var a = {n:1};a.x = a = {n:2}; alert(a.x);
  2. CSS之七个高度有效的媒体查询技巧
  3. CSS之REM和EM的区别
  4. mounted钩子函数_Vue 探索之路——生命周期和钩子函数的一些理解
  5. php 数据类型伪类型,PHP之伪类型与变量
  6. java圆形进度条_可拖拽圆形进度条组件(支持移动端)
  7. 深度学习之数学基础(临时记录)
  8. 探索未知种族之osg类生物---呼吸分解之更新循环一
  9. cin和scanf读入速度
  10. Dubbo xml配置 和注解配置 写法