HDU 2476 区间DP String painter
2024-09-05 00:51:10
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; const int maxn = + ; int n;
char s1[maxn], s2[maxn]; int d[maxn][maxn], a[maxn]; int main()
{
while(scanf("%s%s", s1 + , s2 + ) == )
{
n = strlen(s1 + );
for(int i = ; i <= n; i++) d[i][i] = ; for(int l = ; l <= n; l++)
for(int i = ; i + l - <= n; i++)
{
int j = i + l - ;
d[i][j] = d[i + ][j] + ;
for(int k = i + ; k <= j; k++) if(s2[i] == s2[k])
d[i][j] = min(d[i][j], d[i+][k-] + d[k][j]);
} if(s1[] == s2[]) a[] = ; else a[] = ;
for(int i = ; i <= n; i++)
{
a[i] = d[][i];
if(s1[i] == s2[i]) a[i] = a[i - ];
else
{
for(int j = ; j < i; j++) a[i] = min(a[i], a[j] + d[j+][i]);
}
} printf("%d\n", a[n]);
} return ;
}
代码君
最新文章
- NET Core-学习笔记(一)
- WhatsApp的Erlang世界
- jquery工具方法swap
- Log4cpp介绍及使用
- leetcode@ [22]Generate Parentheses (递归 + 卡特兰数)
- 11-18的学习总结(DOMSecondday)
- Raspberry PI Model B+ (LCD显示CPU温度)
- 简单介绍如何使用robotium进行自动化测试
- redmine配置邮件
- float和position
- ES 08 - 创建、查看、修改、删除、关闭Elasticsearch的index
- openssl 生成pfx
- 关于thinkphp3自动完成的笔记
- MySQL学习笔记Windows篇<;一>; Welcome to MySQL
- linux使用密文生成os账户
- Pytest里,mark装饰器的使用,双引号,没引号,这种差别很重要
- 【PPT详解】曹欢欢:今日头条算法原理
- @JVM中对象的引用类型
- React 同构思想
- Thinkphp学习笔记-编辑工具Sublime license