题目描述

DaA 和他的朋友组成一个团队去旅行了。他们每个人都准备了一个背包,用来装旅行用的物品。他们的背包有两个特点:
1. 每个人的背包能装无限多的物品,每种物品有一个价值,但只能装一件;
2. 每个人都很有个性,所以每个人的背包不会完全相同。
DaA 的团队中有M 个人,那么对于整个团队,背包价值和最大是多少呢?

输入

第一行两个整数M、N,表示团队的人数和物品的数量。
接下来一行N 个整数,表示每件物品的价值wi。
数据保证不会出现有空背包人的出现。

输出

一个整数,整个团队背包价值的最大值。

样例输入

Sample Input 1:
2 3
2 7 1

Sample Input 2:
8 4
1 2 3 4

样例输出

Sample Output 1:
19

Sample Output 2:
58

数据范围限制

【数据规模】
30%的数据 1<=M,N<=15。
60%的数据 1<=M<=200,1<=N<=100。
100%的数据 1<=M<=1,000,000,1<=N<=500,0< wi<=50。
输出请注意使用64 位整数(Pascal 中的Int64,C++中的long long)。

提示

【样例解释】
19=(2+7+1)+(2+7)
58=(1+2+3+4)+(2+3+4)+(1+3+4)+(1+2+4)+(3+4)+(1+2+3)+(2+4)+(2+3)

分析
用 f[i]表示价值为 i 的背包的不同种数,可以用 DP 求出:
f[i] =∑ [i−w[j]]
然后从 ∑w[j] 开始从大到小枚举 f[i],则这 f[i]种背包的总价值为 f[i]*i。枚举
直到人数已经大于等于 M 的为止,统计一下答案就可以了。

程序:

var
i,j:longint;
tj,ans,n,m:int64;
a:array[0..600]of int64;
f:array[0..25100]of int64;
beginassign(input,'team.in');reset(input);assign(output,'team.out');rewrite(output);readln(m,n);tj:=0;for i:=1 to n dobeginread(a[i]);tj:=tj+a[i];end;f[0]:=1;for i:=1 to n dofor j:=tj downto 0 doif j>=a[i] then f[j]:=f[j]+f[j-a[i]];ans:=0;for i:=tj downto 0 doif f[i]<=m thenbeginm:=m-f[i];ans:=ans+f[i]*i;end elsebeginans:=ans+i*m;break;end;write(ans);close(input);close(output);
end.

转载于:https://www.cnblogs.com/YYC-0304/p/9500088.html

JZOJ__Day 6:【普及模拟】团队背包(team)相关推荐

  1. CF3B Lorry (手动模拟01背包,贪心)难度⭐⭐⭐

    这道题洛谷上的翻译是错的,最后输出格式那里应该是输出一行所选物品的编号,中间用空格隔开 手动模拟01背包 这道题看上去很像是01背包的模板题,但是很明显,v=1e9,正常的01背包是肯定会爆掉62MB ...

  2. JZOJ__Day 10:【普及模拟】【USACO】iCow播放器

    题目描述 被无止境的农活压榨得筋疲力尽后,Farmer John打算用他在MP3播放器市场新买的iCow来听些音乐,放松一下.FJ的iCow里存了N(1 <= N <= 1,000)首曲子 ...

  3. 科林明伦杯哈尔滨理工大学第六届程序设计团队赛-Team模拟

    题目链接 题意:有三种操作,1,代表加入数字,2,代表拿出数字,3,代表撤销第i个操作 思路:正着模拟会超时,因为有无限的撤销操作需要递归到上方,所以我们先倒着把撤销的操作都标记下,然后正着模拟(不需 ...

  4. JZOJ__Day 10:【普及模拟】【USACO】横幅

    题目描述 Bessie结束了国外长途旅游回来.为了迎接她的归来,Farmer John准备在牧场给她挂起一个"Welcome Home"的横幅.横幅会挂在两个柱子间的长度介于L1. ...

  5. JZOJ__Day 10:【普及模拟】【USACO】山峰暸望

    题目描述 一天,Bessie在眺望美丽的威斯康星的群山的时候,她突然产生了疑问:哪座山是最宽的捏?她决定在地平线上,利用她的新发明的山峰高度测量仪依次做N (1 <= N <= 10,00 ...

  6. JZOJ__Day 9:【普及模拟】Square

    题目描述 今天小D在他的课桌上玩方格纸,现在有一个平面直角坐标系,小D将方块纸放在这个坐标系中,并且方格纸的都与x轴.y轴平行,小D在这上面放了许多的方格纸,然后想知道对于平面直角坐标系中的一个点有多 ...

  7. JZOJ__Day 9:【普及模拟】算法学习(sfxx)

    题目描述 自从学习了动态规划后,Famer KXP对动态规划的热爱便一发不可收拾,每天都想找点题做,一天,他找到了一道题,但是不会做,于是,他找到了你.题目如下: 给出N个无序不重复的数,再有M个询问 ...

  8. JZOJ__Day 8:【普及模拟】马农

    题目描述 在观看完战马检阅之后,来自大草原的两兄弟决心成为超级"马农",专门饲养战马.兄弟两回到草原,将可以养马的区域,分为 N*N 的单位面积的正方形, 并实地进行考察,归纳出了 ...

  9. JZOJ__Day 7:【普及模拟】max

    题目描述 一个正整数一般可以分为几个互不相同的自然数的和,如3=1+2,4=1+3,5=1+4=2+3,6=1+5=2+4,-. 现在你的任务是将指定的正整数n分解成m个(m>=1)互不相同的自 ...

最新文章

  1. 【Qt】QTest:编译Qt单元测试程序
  2. latex参考文献Bib Tex的使用
  3. GUI(三)一个菜单的程序
  4. Hive表路径修改和分区表数据加载命令
  5. 深度信念网络Deep Belief Networks资料汇总
  6. c语言程序朴素贝叶斯分类器,生成式学习算法(四)之----朴素贝叶斯分类器
  7. 一个servlet跳到另一个servlet_另一个太阳下的天与地
  8. Spark实战之读写HBase
  9. 设计模式之单例模式:7种单例设计模式(Java实现)
  10. 【火炉炼AI】机器学习052-OpenCV构建人脸鼻子眼睛检测器
  11. Python学习笔记:第十四站 百宝箱
  12. 计算机配件地区限制,原来电脑配件包含这么多信息,不懂可以看看!以后再也不怕被坑...
  13. python twisted安装_图文详解python之twisted模块安装
  14. 关于7.0去掉Chrome后,平台默认浏览器报错webview not installed的问题
  15. mov,lea指令的区别
  16. 从0到1搭建数仓DWD层案例实践
  17. 一位父亲给儿女的九条人生忠告(看看吧,受用一生,适用于任何人)
  18. 无线智能灌溉系统功能
  19. python x y 下载_Python(x,y)的下载安装
  20. Java生成微信小程序二维码,5种实现方式,一个比一个简单

热门文章

  1. [云炬商业计划书阅读分享]校园快递创业计划书
  2. 科大星云诗社动态20210822
  3. 72 页 PPT,带你梳理神经网络完整架构(含 PyTorch 代码)
  4. [scala-spark]5. 伴生类和伴生对象
  5. 面绘制经典算法:MarchingCube实现(C++ OpenGl代码篇)
  6. SqlServer系统函数
  7. 关于.NET中的Server push技术
  8. 浅析ASP.NET的Page.IsPostBack 属性
  9. SpringBoot 页面跳转后css和js效果都无效了
  10. java中static{}语句块详解