求助大佬背包动态规划
  • 板块题目总版
  • 楼主KMSK
  • 当前回复1
  • 已保存回复1
  • 发布时间2021/11/13 23:06
  • 上次更新2023/11/4 00:39:16
查看原帖
求助大佬背包动态规划
472423
KMSK楼主2021/11/13 23:06

P1048采药

用的刷表法,样例能过,评测全WA
代码如下:

using namespace std;
int T,m;
int t[1005];//时间 
int v[1005];//价值 
int dp[105][1005];//dp[i][j]:前i株草药费时j所得到的最大价值 
int ans; 
int main()
{
	cin>>T>>m;
	for(int i=1;i<=m;i++)
	cin>>t[i]>>v[i];
	for(int i=1;i<=m;i++)
	{
		for(int j=0;j<=T;j++)
		{
			if(j+t[i]<=T)dp[i][j+t[i]]=max(dp[i-1][j]+v[i],dp[i][j+t[i]]);//状态转移 
		}
	}
	for(int j=0;j<=T;j++)
	ans=max(ans,dp[m][j]); 
	cout<<ans<<endl;
	return 0;
}
2021/11/13 23:06
加载中...