博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 3280 Cheapest Palindrome(DP)
阅读量:5158 次
发布时间:2019-06-13

本文共 1161 字,大约阅读时间需要 3 分钟。

题意 :给你一个字符串,让你删除或添加某些字母让这个字符串变成回文串,删除或添加某个字母要付出相应的代价,问你变成回文所需要的最小的代价是多少。

思路 :DP[i][j]代表的是 i 到 j 这一段位置变成回文所需的最小的代价。

1 //3280 2 #include 
3 #include
4 #include
5 6 using namespace std ; 7 8 char sh[2100] ; 9 int minn[2100] ;10 int dp[2100][2100] ;11 12 int main()13 {14 int M,N ;15 while(~scanf("%d %d",&N,&M))16 {17 scanf("%s",sh) ;18 getchar() ;19 char ch ;20 int inser,delet ;21 for(int i = 0 ; i < N ; i++)22 {23 scanf("%c%*c%d %d",&ch,&inser,&delet) ;24 minn[ch-'a'] = min(inser,delet) ;25 getchar() ;26 }27 for(int i = M-1 ; i >= 0 ; i--)28 {29 for(int j = i+1 ; j <= M-1 ; j++)30 {31 if(sh[i] == sh[j])32 dp[i][j] = dp[i+1][j-1] ;33 else34 dp[i][j] = min(dp[i+1][j]+minn[sh[i]-'a'],dp[i][j-1]+minn[sh[j]-'a']) ;35 }36 }37 printf("%d\n",dp[0][M-1]) ;38 }39 return 0 ;40 }
View Code

转载于:https://www.cnblogs.com/luyingfeng/p/3859837.html

你可能感兴趣的文章
bzoj1010: [HNOI2008]玩具装箱toy
查看>>
js 将json字符串转换为json对象或json对象转换成json字符串
查看>>
Rhino-- JavaScript
查看>>
Java考试笔记一
查看>>
DOM进行表格动态操作
查看>>
移植UE4的Spline与SplineMesh组件到Unity5
查看>>
leetcode 849. 到最近的人的最大距离(Maximize Distance to Closest Person)
查看>>
正则表达式-深入浅出
查看>>
Docker Compose部署lnmp
查看>>
【UOJ#77】A+B Problem
查看>>
【LuoguP5328】[ZJOI2019]浙江省选
查看>>
MeteoInfoLab脚本示例:计算垂直螺旋度
查看>>
Visual Studio的Debugger Visualizers
查看>>
《大教堂与集市》读后感
查看>>
[RabbitMQ]Windows环境下rabbitmqclt(Command Line Tools)出现Erlang distribution failed错误的解决方法...
查看>>
创业这三年@各种奇遇
查看>>
正确配置调试world wind on vs2008
查看>>
纯css实现3D动画
查看>>
几种按键消抖方案的verilog描述
查看>>
四则运算 Day2
查看>>