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 糖果相关推荐

  1. LeetCode简单题之公平的糖果交换

    题目 爱丽丝和鲍勃拥有不同总数量的糖果.给你两个数组 aliceSizes 和 bobSizes ,aliceSizes[i] 是爱丽丝拥有的第 i 盒糖果中的糖果数量,bobSizes[j] 是鲍勃 ...

  2. LeetCode简单题之打折购买糖果的最小开销

    题目 一家商店正在打折销售糖果.每购买 两个 糖果,商店会 免费 送一个糖果. 免费送的糖果唯一的限制是:它的价格需要小于等于购买的两个糖果价格的 较小值 . 比方说,总共有 4 个糖果,价格分别为 ...

  3. LeetCode简单题之分糖果 II

    题目 排排坐,分糖果. 我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友. 给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小 ...

  4. LeetCode简单题之拥有最多糖果的孩‭子

    题目 给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目. 对每一个孩子,检查是否存在一种方案,将额外的 extraCa ...

  5. 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码

    1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...

  6. leetcode-135 分发糖果

    题目描述: 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分. 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果. 相邻的 ...

  7. 贪心:assign cookies分糖果

    贪心算法的核心: 遵循某种规律,使用最少的资源来完成目标 所以在了解贪心算法的时候需要明确两点 寻找共有的规律 每一步的迭代使用最优的策略(消耗最少的资源) 问题如下: 已知一些孩子和一些糖果,每个孩 ...

  8. 【BZOJ】1045: [HAOI2008]糖果传递(中位数)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1045 白书上有讲 没ac的坑点在,数据范围n<=1,000,000 #include < ...

  9. 网易2017校招编程:计算糖果

    A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息: A - B, B - C, A + B, B + C. 这四个数值.每个字母代表每 ...

最新文章

  1. Web开发的机器学习框架
  2. 百度蜘蛛动态网页ajax,百度SEO优化百度蜘蛛可读内容
  3. 为什么有的项目不能打断点_《街霸:对决》:有效利用“打断”机制,让玩家在战斗中越级战斗...
  4. 王思聪在京被执行案和解了!已履行5000万
  5. Spring中的面向切面(AOP)
  6. %%%%%%%%123564
  7. 计算机桌面组成部分教案,三年级信息技术第五课设置个性桌面教学设计
  8. 【洛谷1985】【USACO07OPEN】翻转棋
  9. EasyUI 1.5.1 美化主题大包 Insdep Theme 1.0.3 正式版已发布,开源下载
  10. linux ubuntu 安装odb,玩玩Linux云主机-Ubuntu安装nginx
  11. VS2010使用c++、gSOAP创建WebService 图文教程
  12. Java Swing 课程设计 ---- 实验室设备管理系统
  13. HTML 常用选择框
  14. 单片机c51语言实训总结,单片机实训报告
  15. 6.WIN10 short cut
  16. C++计算md5/sha1/sha256/sha384/sha512算法
  17. 怎么打开微信支付管理中关闭的服务器,手机微信中如何关闭已经开启的自动续费服务...
  18. Linux OS: Write Barriers
  19. Android开源项目分类汇总【畜生级别】[转]
  20. 【Linux云计算架构:第三阶段-Linux高级运维架构】第13章——redis

热门文章

  1. 2021年设计师必备的素材网站
  2. 坦克大战java源码分析(上)
  3. 几款强大实用的地图素材资源网站,我都帮你整理好了~
  4. Python之父Guido推荐命名规范
  5. Ubuntu装配宋体
  6. 从前有座山,山里有座庙
  7. java 实现批量注册---实现类层(含入参参数校验)
  8. 正大国际期货:用狼性思维参与外盘期货
  9. Ubuntu 18.04 编译 cloudcompare
  10. EMO可甜可咸的教育娱乐机器人