首页 > 分享 > 猫狗大战题解

猫狗大战题解

猫狗大战题解

最新推荐文章于 2021-08-13 11:42:48 发布

lpc大菜逼 于 2020-06-21 22:27:31 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

分析:

不难想到这是一道01背包,首先我们假设背包体积为最佳血量(即是血量和 / 2),然后物品体积是猫猫的血量,由此我们的任务变成了从最多n / 2 + 1个物品中选出n个使得体积最接近总容量。需要一提的是一般遇到品均值这种题都要把最佳状态想成体积,然后不断尝试放入物品塞满背包从而达到最佳状态。

状态:

dp[j][k]表示现可放j个物品,有k那么大的体积,求第i个物品能否放入

转移方程:

if(dp[j][k]) {dp[j + 1][k + a[i].v] = 1;//若成立即可放入第i个物品 } 123 细节:

for(int i = sum;i >= 0; i--) {if(dp[n / 2][i] == 1 || (dp[n / 2 + 1][i] == 1 && n % 2 == 1)) {//最后只需判断这种方案是否成立即可printf("%d %d", i, u - i);return 0;}} 1234567 代码:

#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int dp[205][100005], n, c[1000005]; struct jj{int v, m; }a[1000005]; int 123456789

相关知识

猫狗大战手机版
猫狗大战正式版下载
猫狗大战作文9篇
LOL猫狗大战什么时候结束
猫狗大战RPG下载
LOL猫狗大战任务有哪些?全部猫狗大战任务汇总
猫狗大战手游下载
猫狗大战竞技场最新版下载
猫狗大战中文版手游下载
《猫狗大战》打造无敌可爱宠物

网址: 猫狗大战题解 https://m.mcbbbk.com/newsview680225.html

所属分类:萌宠日常
上一篇: 测评Plog|vs宠物大师辅酶Q
下一篇: 今日萌宠训练犬成社交明星