简单二位费用背包记忆化为啥全wa
  • 板块学术版
  • 楼主houluyu
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/8/24 12:37
  • 上次更新2023/11/3 01:33:37
查看原帖
简单二位费用背包记忆化为啥全wa
690243
houluyu楼主2023/8/24 12:37

P1910 L 国的战斗之间谍

/*


*/
#include<iostream>
using namespace std;
const int N=105,M=1005;
int n,m,x;
int c[N],w1[N],w2[N];
int dp[M][M];//工资i能力j的最多资料 
void dfs(int xx,int gz,int nl,int zl)//第几个  总工资  总能力  总的资料 
{
	if(gz>x||nl>m)return ;
	if(dp[gz][nl]>zl)return ;
	dp[gz][nl]=zl;
	if(xx>n)return ;
	dfs(xx+1,gz+w2[xx],nl+w1[xx],zl+c[xx]);
	dfs(xx+1,gz,nl,zl);
}
int main()
{
	scanf("%d%d%d",&n,&m,&x);
	for(int i=1;i<=n;i++)scanf("%d%d%d",&c[i],&w1[i],&w2[i]);
	dfs(1,0,0,0);
	printf("%d\n",dp[x][m]);
	return 0;
}

我的思路是记忆化如果当前的比之前的劣,那就剪枝不在搜了

2023/8/24 12:37
加载中...