zoukankan      html  css  js  c++  java
  • P2890 [USACO07OPEN]Cheapest Palindrome G 题解

    P2890 [USACO07OPEN]Cheapest Palindrome G

    sol

    定义 \(F[i][j]\) 表示从为从\(i\)\(j\)这段区间被修正为回文串的最小花费

    然后考虑转移,若\(a[i]==a[j]\) 那么直接转移

    否则考虑加减 \(i+1\)\(j-1\)

    code

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=2010;
    int n,m;
    char s[maxn];
    int c[maxn][2];
    int f[maxn][maxn];
    int main(){
        cin>>m>>n;
        scanf("%s",s+1);
        for(int i=1;i<=m;++i){
            char op[2];
            int a,b;
            scanf("%s %d %d",op,&a,&b);
            c[op[0]][0]=a;
            c[op[0]][1]=b;
    	}
    	memset(f,0x3f,sizeof f);
    	for(int i=1;i<=n;++i)f[i][i]=0;
    	for(int i=0;i<=n+1;++i){
    	    for(int j=0;j<i;++j)f[i][j]=0;
    	}
    	for(int k=1;k<=n;++k){
    	    for(int i=1;k+i<=n;++i){
    	    	int j=k+i;
    	        f[i][j]=min(f[i+1][j]+min(c[s[i]][0],c[s[i]][1]),
    			            f[i][j-1]+min(c[s[j]][0],c[s[j]][1]));
    			if(s[i]==s[j]){
    				if(j-i==1)f[i][j]=0;
    			    else f[i][j]=min(f[i][j],f[i+1][j-1]);
    			}
    		}
    	}
    	cout<<f[1][n]<<endl;
    }
    
  • 相关阅读:
    jQuery-css
    了解jQuery
    jQuery属性
    jQuery常用效果
    jQuery_$工具方法
    jQuery选择器
    jQuery核心对象
    $
    jQuery两把利器
    JavaScriptDOM
  • 原文地址:https://www.cnblogs.com/martian148/p/15560550.html
Copyright © 2011-2022 走看看