好久没写背包了。。。

照着九讲的公式,也只记得这些了。。

#include<cstdio>
#include<cstdlib>
#include<algorithm>
using namespace std;
int p[105],h[105],c[105];
int dp[105];
int n;
void CompletePack(int p,int h)
{
	for(int i=p;i<=n;i++)
		dp[i]=max(dp[i],dp[i-p]+h);
}
void ZeroOnePack(int p,int h)
{
	for(int i=n;i>=p;i--)
		dp[i]=max(dp[i],dp[i-p]+h);
}
void MultiPack(int p,int h,int c)
{
	int k;
	if(p*c>=n)
	{
		CompletePack(p,h);
		return ;
	}
	k=1;
	while(k<c)
	{
		ZeroOnePack(k*p,k*h);
		c-=k;
		k*=2;
	}
	ZeroOnePack(c*p,c*h);
}
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		memset(dp,0,sizeof(dp));
		int m;
		scanf("%d%d",&n,&m);
		for(int i=1;i<=m;i++)
			scanf("%d%d%d",&p[i],&h[i],&c[i]);
		for(int i=1;i<=m;i++)
			MultiPack(p[i],h[i],c[i]);
		printf("%d\n",dp[n]);
	}
	return 0;
}


以下是Unity中背包代码的基本步骤: 1. 创建背包的UI界面 使用Unity的UI系统创建一个背包界面,可以使用UGUI或者NGUI等UI插件。 2. 定义背包数据结构 定义一个背包数据结构,可以使用数组、列表、字典等数据结构来存储背包中的物品信息,每个物品可以包含名称、数量、图标等信息。 3. 加载背包中的物品信息 可以使用Unity的资源管理器来加载背包中的物品信息,也可以从服务器端获取背包信息。 4. 显示背包中的物品信息 将背包中的物品信息显示在UI界面上,可以使用Unity的UI系统来创建物品图标、名称、数量等UI元素,将它们放置在背包界面上。 5. 实现物品的拖拽和放置 可以使用Unity的事件系统来实现物品的拖拽和放置,当玩家拖拽物品时,可以将物品的信息存储在一个临时变量中,当玩家放置物品时,可以根据物品的位置来判断放置的位置是否合法。 6. 实现物品的使用和移除 当玩家使用物品时,可以根据物品的类型来调用相应的方法,比如增加玩家的血量、攻击力等;当玩家移除物品时,可以将物品从背包中移除,并更新UI界面。 7. 保存背包信息 当玩家关闭游戏或者切换场景时,需要保存背包中的物品信息,可以将物品信息保存在本地文件或者服务器端。 以上是Unity中编背包代码的基本步骤,具体实现可以根据需要进行调整和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值