题意:给出n个物品的价值和数目,将这一堆物品分给A,B,问怎样分使得两者的价值最接近,且A的要多于B

第一次做的时候,没有思路---@_@

因为需要A,B两者最后的价值尽可能接近,那么就可以将背包的容量转化为sum/2来做,然后按照01背包的做法来做

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 500005
using namespace std;
int dp[maxn],v[maxn],w[maxn];
int main()
{
int i,j,k,n;
while(scanf("%d",&n)!=EOF&&n>0)
{
int sum=0;
memset(dp,0,sizeof(dp));
for(i=1;i<=n;i++)
{
scanf("%d %d",&v[i],&w[i]);
sum+=v[i]*w[i];
} for(i=1;i<=n;i++)
for(j=1;j<=w[i];j++)
for(k=sum/2;k>=v[i];k--)
dp[k]=max(dp[k],dp[k-v[i]]+v[i]);
printf("%d %d\n",sum-dp[sum/2],dp[sum/2]);
}
}

  

最新文章

  1. MS SQL 排序规则总结
  2. 兼容iOS 10 资料整理笔记
  3. linux命令(1):ls命令
  4. url 字符串中的参数信息
  5. 配置svn
  6. while循环问题(老师询问问题,学生回答。学生会了可以放学,或者老师讲了10遍,还是没有会的,被迫无奈也要放学。)
  7. cf158B(水题)
  8. The ‘Microsoft.ACE.OLEDB.12.0′ provider is not registered on the local machine. (System.Data)
  9. cocos2d-x 网格动画深入分析
  10. arm str 指令
  11. Codeforces 450 C. Jzzhu and Chocolate
  12. UTF8国际通用为什么还要用GBK?
  13. SAX解析xml浅析
  14. [css]《css揭秘》学习(四)-一个元素实现内圆角边框
  15. C#深入理解AutoResetEvent和ManualResetEvent
  16. 04基于python玩转人工智能最火框架之TensorFlow开发环境搭建
  17. Java LinkedList
  18. c# txt内存映射技术总结
  19. windows7系统下让所有文件夹都使用同一种视图的方法
  20. Java-master(github)教材整理

热门文章

  1. composer的一些操作
  2. BottomSheetBehavior 结合CoordinatorLayout实现底部栏
  3. Android设计模式——工厂方法模式
  4. CentOS 7.1 下载,安装,配置
  5. BZOJ 3527: [Zjoi2014]力 FFT_卷积
  6. 路飞学城Python-Day25
  7. AIM Tech Round 5 1028cf(A-E)
  8. .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  9. Linux赛车游戏 SuperTuxKart 1.0 正式发布
  10. 小学生都能学会的python(函数)