hdu1171(DP求两份物品的价值相差最小)
题目信息:
给出一些物品的价值和个数。分成两份,是这两份的价值相差最小(DP方法)
http://acm.hdu.edu.cn/showproblem.php?
pid=1171
AC代码:
/**
*0-1背包问题
*使得总背包的一半空间装尽可能多的价值
*/
#include<iostream>
#include<cstring>
using namespace std;
int dp[250000];
int v[5500];
int main()
{
int n,a,b,sum,k;
while(cin>>n&&n>0){
memset(dp,0,sizeof(dp));
sum=0; k=0;
for(int i=0;i<n;i++){
cin>>a>>b;
sum+=a*b;
while(b--){
v[k++]=a;//全部价值装入数组
}
}
dp[0]=1;
for(int i=0;i<k;i++){
for(int j=sum/2;j>=0;j--){
if(j-v[i]>=0) dp[j]=dp[j-v[i]];
}
}
for(int i=sum/2;i>=0;i--){
if(dp[i]){
if(sum-i>i) cout<<sum-i<<" "<<i<<endl;
else cout<<sum-i<<" "<<i<<endl;
break;
}
}
/**时间长
dp[0]=0;
for(int i=0;i<k;i++){
for(int j=sum/2;j>=0;j--){
if(j-v[i]>=0) dp[j]=max(dp[j],dp[j-v[i]]+v[i]);
}
}
if(sum-dp[sum/2]>dp[sum/2]) cout<<sum-dp[sum/2]<<" "<<dp[sum/2]<<endl;
else cout<<sum-dp[sum/2]<<" "<<dp[sum/2]<<endl;
**/
}
return 0;
}
hdu1171(DP求两份物品的价值相差最小)的更多相关文章
- HDU3853-LOOPS(概率DP求期望)
LOOPS Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 125536/65536 K (Java/Others) Total Su ...
- HDU 4514 - 湫湫系列故事——设计风景线 - [并查集判无向图环][树形DP求树的直径]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4514 Time Limit: 6000/3000 MS (Java/Others) Memory Li ...
- 浅谈关于树形dp求树的直径问题
在一个有n个节点,n-1条无向边的无向图中,求图中最远两个节点的距离,那么将这个图看做一棵无根树,要求的即是树的直径. 求树的直径主要有两种方法:树形dp和两次bfs/dfs,因为我太菜了不会写后者这 ...
- Poj 2096 (dp求期望 入门)
/ dp求期望的题. 题意:一个软件有s个子系统,会产生n种bug. 某人一天发现一个bug,这个bug属于某种bug,发生在某个子系统中. 求找到所有的n种bug,且每个子系统都找到bug,这样所要 ...
- hdu4035 Maze (树上dp求期望)
dp求期望的题. 题意: 有n个房间,由n-1条隧道连通起来,实际上就形成了一棵树, 从结点1出发,开始走,在每个结点i都有3种可能: 1.被杀死,回到结点1处(概率为ki) 2.找到出口,走出迷宫 ...
- POJ2096 Collecting Bugs(概率DP,求期望)
Collecting Bugs Ivan is fond of collecting. Unlike other people who collect post stamps, coins or ot ...
- POJ 2096 (dp求期望)
A - Collecting Bugs Time Limit:10000MS Memory Limit:64000KB 64bit IO Format:%I64d & %I64 ...
- PHP 求两个日期之间相差的天数、月数
<?php /** * 求两个日期之间相差的天数 * (针对1970年1月1日之后,求之前可以采用泰勒公式) * @param string $day1 * @param string $day ...
- 评playerc网友的"求比指定数大且最小的“不重复数”问题"
问题见:对Alexia(minmin)网友代码的评论及对“求比指定数大且最小的‘不重复数’问题”代码的改进 .算法:求比指定数大且最小的“不重复数”问题的高效实现 . playerc网友的代码如下(求 ...
随机推荐
- android用户界面之ScrollView教程实例汇总
--------------------------汇总不容易啊------------------------------- 一.ScrollView基础知识 1.Android中ScrollVie ...
- CSharp Algorithm - Replace multiplication operator with a method
/* Author: Jiangong SUN */ How to replace multiplication operation with a method? For example, you h ...
- MySQL中innodb引擎分析(初始化)
MySQL的存储引擎是以插件形式工作的,这应该是MySQL的一大特色了吧! 依据<深入理解MySQL>的内容,5.1版本号时存储引擎的插件化都还不是彻底,确切的说是刚加入的特性.为MySQ ...
- HDU 4836 The Query on the Tree lca || 欧拉序列 || 动态树
lca的做法还是非常明显的.简单粗暴, 只是不是正解.假设树是长链就会跪,直接变成O(n).. 最后跑的也挺快,出题人还是挺阳光的.. 动态树的解法也是听别人说能ac的.预计就是放在splay上剖分一 ...
- STM32 控制步进电机 28BYJ-48
STM32 控制步进电机 28BYJ-48 http://blog.chinaunix.net/uid-12664992-id-300272.html 步进电机驱动最简化的逻辑: //四相八拍:A- ...
- encode_utf8 把字符编码成字节 decode_utf8解码UTF-8到字符
encode_utf8 $octets = encode_utf8($string); Equivalent to "$octets = encode("utf8", $ ...
- Lisp学习:这是本质与应用?
The Common Lisp Programming Language "The programming language of choice for those who set out ...
- CentOS6 yum源支持更多rpm包的升级(使用第三方软件库EPEL、RPMForge与RPMFusion)
转载于http://blog.csdn.net/erazy0/article/details/6878153 在CentOS下运行yum install flash-plugin或yum instal ...
- 使用POI创建Excel文件下载
POIExcelUtils.java: package com.saicfc.pmpf.internal.manage.utils; import java.io.File; import java. ...
- wxpython 32 位 ,python 64 位问题
在安装Python Wxpython模块后,导入包的时候,会提示不支持64位的支持,需要安装Pythons 32 位,或者强制,使用Python 32 模式运行即可 在终端输入: defaults w ...