区间DP,10pts求调QAQ

P2890 [USACO07OPEN] Cheapest Palindrome G

@[Mount_](/user/519384) ```cpp #include<bits/stdc++.h> #define int long long using namespace std; char s[2005]; int n,m,a[1005],b[1005],dp[2005][2005]; signed main() { cin >> n >> m >> (s+1); for(int i=1; i<=n; i++) { char c; cin >> c; cin >> a[c] >> b[c]; } for(int len=2; len<=m; len++) { for(int l=1; l+len-1<=m; l++) { int tmp1,tmp2,x=l,y=l+len-1; tmp1=min(a[s[x]],b[s[x]]); tmp2=min(a[s[y]],b[s[y]]); if (s[x]==s[y]) { dp[x][y]=dp[x+1][y-1]; dp[x][y]=min(dp[x][y],dp[x+1][y]+tmp1); dp[x][y]=min(dp[x][y],dp[x][y-1]+tmp2); } else dp[x][y]=min(dp[x+1][y]+tmp1,dp[x][y-1]+tmp2); } } cout << dp[1][m]; return 0; } ``` ~~给个关注?~~
by kdy20100729 @ 2022-03-06 15:55:59


@[kdy20100729](/user/367194) 好早以前就A找出错了,是循环反了。但是关注必须给的hh
by Link_Cut_Y @ 2022-03-06 19:45:44


@[kdy20100729](/user/367194) [dalao求调](https://www.luogu.com.cn/discuss/415590)
by Link_Cut_Y @ 2022-03-06 19:47:31


|