H - String painter
- #include <iostream>
- #include <algorithm>
- #include <cstring>
- #include <cstdio>
- #include <string>
- #include <map>
- #include <cmath>
- #include <vector>
- #define Faster ios::sync_with_stdio(false),cin.tie(0)
- #define Read freopen("in.txt","r",stdin),freopen("out.txt","w",stdout)
- #define Close fclose(stdin),fclose(stdout)
- const int maxn = ;
- using namespace std;
- const int MOD = 1e9+;
- typedef long long ll;
- char s1[maxn];
- char s2[maxn];
- int dp[maxn][maxn];
- int len;
- int ans[maxn];
- int main(){
- Faster;
- while(~scanf("%s%s", s1, s2)){
- len = strlen(s1);
- memset(dp, , sizeof(dp));
- for(int j = ;j < len; j++){ //j为尾
- for(int i = j;i >= ;i--){ //i为头
- dp[i][j] = dp[i+][j] + ; //每个都单独刷一次
- for(int k = i+;k <= j;k++){
- if(s2[i] == s2[k]){
- dp[i][j] = min(dp[i][j], (dp[i+][k]+dp[k+][j]));
- }
- }
- }
- }
- for(int i = ;i < len;i++){
- ans[i] = dp[][i];
- }
- for(int i = ;i < len;i++){
- if(s1[i] == s2[i]){
- ans[i] = ans[i-]; //对应位置相等的话,就不用刷新
- }
- else{
- for(int j = ;j < i;j++){
- ans[i] = min(ans[i], ans[j] + dp[j+][i]); //寻找j来分割区间的最优解
- }
- }
- }
- printf("%d\n", ans[len-]);
- }
- return ;
- }
H - String painter的更多相关文章
- HDOJ 题目2474 String painter(区间DP)
String painter Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- HDU 2476 String painter(区间DP)
String painter Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- HDU2476 String painter(DP)
题目 String painter 给出两个字符串s1,s2.对于每次操作可以将 s1 串中的任意一个子段变成另一个字符.问最少需要多少步操作能将s1串变为s2串. 解析 太妙了这个题,mark一下. ...
- [一道区间dp][String painter]
http://acm.hdu.edu.cn/showproblem.php?pid=2476 String painter Time Limit: 5000/2000 MS (Java/Others) ...
- hdu2476 String painter(区间dp)
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2476 Problem Description There are two strings ...
- uva live 4394 String painter 间隔dp
// uva live 4394 String painter // // 问题是,在培训指导dp运动主题,乍一看,我以为只是一点点复杂 // A A磕磕磕,两个半小时后,.发现超过例子.然而,鉴于他 ...
- HDU2476 String painter
题意 String painter Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- Go -- php 中的pack("H*", $string) 转换成go
pack("H*", $string) 转化成这样: //16进制字符串转[]byte func HexToByte(hex string) []byte { length := ...
- 刷题总结——String painter(hdu2476)
题目: Problem Description There are two strings A and B with equal length. Both strings are made up of ...
随机推荐
- R in Action(1) 基本数据结构
一数据类型 R的数据类型包括数值型.字符型.逻辑型(布尔).复数型和原生型,同时R有好多存储数据的对象类型,包括标量.向量.矩阵.数组.数据框和列表,如下图所示下图(图的版权神马的归原作者跟原出版社所 ...
- 找到bashrc
(1)直接sudo gedit ~/.bashrc就可以了,编辑完后关闭就行 (2)主文件夹下ctrl+h就能找到.bashrc文件 之所以要找到bashrc文件,是为了把命令 source /opt ...
- powerbuilder
PowerBuilder美国Sybase公司研制的一种新型.快速开发工具,是客户机/服务器结构下,基于Windows3.x.Windows95和WindowsNT的一个集成化开发工具.它包含一个直观的 ...
- hadoop 添加,删除节点
http://www.cnblogs.com/tommyli/p/3418273.html
- system调用命令行命令而不显示命令行窗口
system调用命令行命令而不显示命令行窗口 通常用system调用命令行命令时都会弹出黑底白字的命令行窗口,下面的代码可以不显示弹出的命令行窗口. 代码如下 #pragma comment( lin ...
- java基础汇总
1.关于Http和Hibernatet里面Session的区别HttpSession HttpSession:是一个抽象接口,J2EE的Web程序在运行的时候,会给每一个新的访问者建立一个H ...
- Swing项目编译成exe,并且打包成安装文件(二)
前面我们讲到了将Swing项目编译成双击可执行的文件exe,这篇我就教大家怎么把exe打包成需要在电脑安装的那种,首先需要一个工具,Inno Setup 编译器, 下载地址,我这个是汉化版的,双击打开 ...
- nyoj 1279 (河南省第九届ACM比赛 D 题)
思路:变换一下坐标系新的坐标系就是给定的两条直线,变换之后求 x,y 都严格递增的点的个数的max: 求 x,y 都严格递增的点的个数的max,按照x的从小到大排序,x相同的按照y的从大到小排序然后对 ...
- UniCode转码
<script type="text/javascript"> var GB2312UnicodeConverter = { ToUnicode: function ( ...
- 【CQ18高一暑假前挑战赛2】标程
[昨晚打校赛,5个小时打完很累了,所以搞忘出题了...对不起学弟们,不过出的题都亲自写过一遍,可以保证题目和代码长度都不长,题目难度不大] [A:bush博弈] #include<bits/st ...