博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu1171 Big Event in HDU
阅读量:4157 次
发布时间:2019-05-26

本文共 883 字,大约阅读时间需要 2 分钟。

hdu1171 Big Event in HDU

标签:01背包


/*    题意:有N种物品,每种价值为V,数量为M。平分为A,B两堆,A,B之差尽可能小,且A不小于B。    思路:01背包变形,用总价值的一半total/2去选择最多价值的物品。*/#include 
#include
#include
using namespace std;const int maxn = 125555 + 5;int dp[maxn], value[5005];int main(){ int N; while(scanf("%d", &N) && N > 0) { int total = 0, pos = 0; int a, b; for(int i = 0; i < N; i++) { scanf("%d %d", &a, &b); total += a * b; for(int j = 0; j < b; j++) value[pos++] = a; /// } memset(dp, 0, sizeof(dp)); //ZeroOnePack template for(int i = 0; i < pos; i++) for(int j = total / 2; j >= value[i]; j--) dp[j] = max(dp[j], dp[j - value[i]] + value[i]); printf("%d %d\n", max(dp[total / 2], total - dp[total / 2]), min(dp[total / 2], total - dp[total / 2])); } return 0;}

转载地址:http://wikxi.baihongyu.com/

你可能感兴趣的文章
日志框架学习
查看>>
日志框架学习2
查看>>
SVN-无法查看log,提示Want to go offline,时间显示1970问题,error主要是 url中 有一层的中文进行了2次encode
查看>>
NGINX
查看>>
Qt文件夹选择对话框
查看>>
DeepLearning tutorial(7)深度学习框架Keras的使用-进阶
查看>>
第三方SDK:JPush SDK Eclipse
查看>>
第三方开源库:imageLoader的使用
查看>>
Android studio_迁移Eclipse项目到Android studio
查看>>
转载知乎-前端汇总资源
查看>>
JavaScript substr() 方法
查看>>
JavaScript slice() 方法
查看>>
JavaScript substring() 方法
查看>>
HTML 5 新的表单元素 datalist keygen output
查看>>
(转载)正确理解cookie和session机制原理
查看>>
jQuery ajax - ajax() 方法
查看>>
将有序数组转换为平衡二叉搜索树
查看>>
最长递增子序列
查看>>
从一列数中筛除尽可能少的数,使得从左往右看这些数是从小到大再从大到小...
查看>>
判断一个整数是否是回文数
查看>>