zoukankan      html  css  js  c++  java
  • poj 3280【区间dp】

    poj 3280

    题意:给定一个字符串和每个字符删去和增加的代价,求使字符串变成回文串操作所需的最小代价。

    题解:哇!开心!终于亲自做对了!做完这两题这个就回了。uva10739  uva 10453

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 #include<algorithm>
     5 using namespace std;
     6 
     7 struct st{
     8     int ad,de;
     9 };
    10 st a[30];
    11 int dp[2050][2050];
    12 char s[2050];
    13 
    14 int main()
    15 {
    16     int N,len,t1,t2;
    17     char t;
    18     cin>>N>>len;
    19     cin>>s;
    20     for(int i=1;i<=N;i++){
    21         cin>>t;cin>>t1>>t2;
    22         a[t-'a'].ad=t1,a[t-'a'].de=t2;
    23     }
    24     for(int i=0;i<len;i++) dp[i][i]=0;
    25     for(int i=len-1;i>=0;i--)
    26     {
    27         for(int j=i+1;j<len;j++){
    28             if(s[i]==s[j])
    29                 dp[i][j]=dp[i+1][j-1];
    30             else {
    31                 dp[i][j]=min(dp[i+1][j]+a[s[i]-'a'].de,dp[i][j-1]+a[s[j]-'a'].de);
    32                 dp[i][j]=min(dp[i][j],dp[i+1][j]+a[s[i]-'a'].ad);
    33                 dp[i][j]=min(dp[i][j],dp[i][j-1]+a[s[j]-'a'].ad);
    34             }
    35         }
    36     }
    37     cout<<dp[0][len-1]<<endl;
    38     return 0;
    39 }
  • 相关阅读:
    python之名称空间
    python之对象(实例)
    python之类
    python之类和对象
    python之面向对象的程序设计
    python之函数联系
    Python之函数第三篇
    python之列表和生成器表达式篇
    网络基本概念
    Git
  • 原文地址:https://www.cnblogs.com/zxhyxiao/p/8470050.html
Copyright © 2011-2022 走看看