jzoj1501 糖果
Description
你和你的朋友有一大包糖果,你想把这些糖按照能量尽可能平均分配,你的任务就是把这些糖分成两部分使得两部分的能量尽可能接近。
Input
输入第一行包含一个整数N(1<=N<=100),示袋子中糖果的种数,接下来N行,每行两个整数K_i,C_i,K_i表示第i种糖果的数量,C_i表示每个第i种糖果所含能量大小,1<=K_i<=500,1<=C_i<=200
Output
输出一个非负数,表示两部分的最小能量差。
Sample Input
4
3 5
3 3
1 2
3 100
Sample Output
74
Hint
50%的数据1<=N,K_i,C_i<=100。
算法讨论
设f[i,j]为true表示分配前i个可以达到差值为j,为false则不能,那么对于第i堆糖果,在i-1堆糖果已有的分配方案中,枚举分为k个和a[i]-k个两堆,就可以在产生分配i堆糖果的方案,dp方程为:
f[i,abs(j+k*b[i]-(a[i]-k)*b[i])]:=true
因为糖果能量不超过200,所以如果差值超过200,就可以在大的一堆中拿一个小于200的放入小的一堆,所以最优方案差值不超过200.
vara,b:array[1..200] of longint;n,i,x,j,l:longint;
beginreadln(n);for i:=1 to n dobeginreadln(a[i],b[i]);end;for i:=1 to n-1 dofor j:=i+1 to n doif b[i]<b[j] thenbeginl:=a[i];a[i]:=a[j];a[j]:=l;l:=b[i];b[i]:=b[j];b[j]:=l;end;for i:=1 to n dofor j:=1 to a[i] doif x<=0 then x:=x+b[i]else x:=x-b[i];writeln(abs(x));
end.
jzoj1501 糖果相关推荐
- LeetCode简单题之公平的糖果交换
题目 爱丽丝和鲍勃拥有不同总数量的糖果.给你两个数组 aliceSizes 和 bobSizes ,aliceSizes[i] 是爱丽丝拥有的第 i 盒糖果中的糖果数量,bobSizes[j] 是鲍勃 ...
- LeetCode简单题之打折购买糖果的最小开销
题目 一家商店正在打折销售糖果.每购买 两个 糖果,商店会 免费 送一个糖果. 免费送的糖果唯一的限制是:它的价格需要小于等于购买的两个糖果价格的 较小值 . 比方说,总共有 4 个糖果,价格分别为 ...
- LeetCode简单题之分糖果 II
题目 排排坐,分糖果. 我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友. 给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小 ...
- LeetCode简单题之拥有最多糖果的孩子
题目 给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目. 对每一个孩子,检查是否存在一种方案,将额外的 extraCa ...
- 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码
1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...
- leetcode-135 分发糖果
题目描述: 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分. 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果. 相邻的 ...
- 贪心:assign cookies分糖果
贪心算法的核心: 遵循某种规律,使用最少的资源来完成目标 所以在了解贪心算法的时候需要明确两点 寻找共有的规律 每一步的迭代使用最优的策略(消耗最少的资源) 问题如下: 已知一些孩子和一些糖果,每个孩 ...
- 【BZOJ】1045: [HAOI2008]糖果传递(中位数)
http://www.lydsy.com/JudgeOnline/problem.php?id=1045 白书上有讲 没ac的坑点在,数据范围n<=1,000,000 #include < ...
- 网易2017校招编程:计算糖果
A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息: A - B, B - C, A + B, B + C. 这四个数值.每个字母代表每 ...
最新文章
- Web开发的机器学习框架
- 百度蜘蛛动态网页ajax,百度SEO优化百度蜘蛛可读内容
- 为什么有的项目不能打断点_《街霸:对决》:有效利用“打断”机制,让玩家在战斗中越级战斗...
- 王思聪在京被执行案和解了!已履行5000万
- Spring中的面向切面(AOP)
- %%%%%%%%123564
- 计算机桌面组成部分教案,三年级信息技术第五课设置个性桌面教学设计
- 【洛谷1985】【USACO07OPEN】翻转棋
- EasyUI 1.5.1 美化主题大包 Insdep Theme 1.0.3 正式版已发布,开源下载
- linux ubuntu 安装odb,玩玩Linux云主机-Ubuntu安装nginx
- VS2010使用c++、gSOAP创建WebService 图文教程
- Java Swing 课程设计 ---- 实验室设备管理系统
- HTML 常用选择框
- 单片机c51语言实训总结,单片机实训报告
- 6.WIN10 short cut
- C++计算md5/sha1/sha256/sha384/sha512算法
- 怎么打开微信支付管理中关闭的服务器,手机微信中如何关闭已经开启的自动续费服务...
- Linux OS: Write Barriers
- Android开源项目分类汇总【畜生级别】[转]
- 【Linux云计算架构:第三阶段-Linux高级运维架构】第13章——redis