社区讨论

样例没过求条

P2890[USACO07OPEN] Cheapest Palindrome G参与者 1已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@miy6ezlm
此快照首次捕获于
2025/12/09 14:05
2 个月前
此快照最后确认于
2025/12/11 22:21
2 个月前
查看原帖
CPP
//998244353
#include<bits/stdc++.h>
#define itn int
using namespace std;
const int N=2e3+10;
int dp[N][N],cz[N][5],n,m,r;
char ls,s[N];
int main()
{
	cin>>n>>m>>s+1;
	for(int i=1;i<=n;i++)
	{
		cin>>ls;
		cin>>cz[ls][0]>>cz[ls][1];
	}
	memset(dp,0x3f,sizeof(dp));
	for(int i=1;i<=m;i++)
	{
		dp[i][i]=0;
	}
	for(int i=1;i<=m;i++)
	{
		for(int j=1;j<i;j++)
		{
			dp[i][j]=0;
		}
	}
	for(int len=1;len<=m;len++)
	{
		for(int l=1;l<=n-len+1;l++)
		{
			r=l+len-1;
			if(s[l]==s[r])
			{
				dp[l][r]=min(dp[l][r],dp[l+1][r-1]);
			}
			else
			{
				dp[l][r]=min(dp[l+1][r]+min(cz[s[l]][0],cz[s[l]][1]),dp[l][r-1]+min(cz[s[r]][0],cz[s[r]][1]));
			}
		}
	}
	cout<<dp[1][m];
}

回复

1 条回复,欢迎继续交流。

正在加载回复...