题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=1171

分析:

例如数据

3

10    2

20    1

30    1

获得这样一个降序的数组:30 20 10 10 (两个10是因为10值物品有两个)

总物品价值的一半为背包容量,然后从价值大的物品开始选,当当前背包中物品价值加上将要放的物品的价值大于背包容量的时候,将要放入背包的物品不放入

注意点

1.n为负数的时候停止循环,而不是n==-1

2.背包容量为有小数的数时,取ceil上极限

3.数组排序降序,升序的话不好处理数据

特殊数据

3

10    2

20    1

21    1

答案:31    30

代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
while(scanf("%d",&n)!=EOF&&n>=)
{
if(n<)
break;
int x,y;
int q[],len=;
double sum=0.0,temp=0.0;
for(int i=;i<n;i++)
{
scanf("%d %d",&x,&y);
sum=sum+(double)x*y;
while(y--)
{
q[len++]=x;
}
}
temp=ceil(sum*1.0/2.0);
sort(q,q+len);
double a=0.0,b=0.0;
for(int i=len-;i>=;i--)
{
if(a+q[i]>temp)
continue;
a=a+q[i];
}
b=sum-a;
if(b>a)
{
int t=a;
a=b;
b=t;
}
printf("%.0lf %.0lf\n",a,b);
}
}

自己还是太菜。。。写了两小时。。。。。。。。

HDU 1171 (01背包问题)的更多相关文章

  1. HDU 1171 01背包

    http://acm.hdu.edu.cn/showproblem.php?pid=1171 基础的01背包,求出总值sum,背包体积即为sum/2 #include<stdio.h> # ...

  2. HDU 1171(01背包)

    Big Event in HDU Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  3. HDU 2546 01背包问题

    这里5元是个什么意思呢.差不多就是特殊情况了. 就是说最贵的那个东西先不买.并且最后要留下5元去买那个最贵的. 也就是说对现在金钱-5 拿剩下的钱去对减去最贵的商品后的商品dp.看这些剩下的钱能买多少 ...

  4. HDU _2546 01背包问题

    A - 饭卡 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Statu ...

  5. HDU 1171 Big Event in HDU(0-1背包)

    http://acm.hdu.edu.cn/showproblem.php?pid=1171 题意:给出一系列的价值,需要平分,并且尽量接近. 思路:0—1背包问题. 0-1背包问题也就是有n种物品且 ...

  6. HDU 1864最大报销额 01背包问题

    B - 最大报销额 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit St ...

  7. HDU 2602 Bone Collector(经典01背包问题)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2602 Bone Collector Time Limit: 2000/1000 MS (Java/O ...

  8. HDU 1171 Big Event in HDU(01背包)

    题目地址:HDU 1171 还是水题. . 普通的01背包.注意数组要开大点啊. ... 代码例如以下: #include <iostream> #include <cstdio&g ...

  9. HDU 3466 Proud Merchants 带有限制的01背包问题

    HDU 3466 Proud Merchants 带有限制的01背包问题 题意 最近,伊萨去了一个古老的国家.在这么长的时间里,它是世界上最富有.最强大的王国.因此,即使他们的国家不再那么富有,这个国 ...

随机推荐

  1. Oracle数据库进行撤销

    第一步:在v$sqlarea 这视图里面找到你操作那条SQL的时间;select r.FIRST_LOAD_TIME,r. from v$sqlarea r order by r.FIRST_LOAD ...

  2. Docker for Windows(四)实践搭建&删除MySQL服务

    我们已经下载安装好了Docker for Windows:Docker for Windows(一)下载与安装,也简单了解了Docker常用命令:Docker for Windows(三)Docker ...

  3. CSS属性之border

    css的border属性相信大家都不陌生了,就是给元素加个边框嘛,在不同的盒模型下,会给元素的宽高带来怎样的影响,相信大家也都很熟悉了,这里就不再赘述,只说说大家平时没有怎么留意的东西. 0.bord ...

  4. html5中高德、腾讯、百度 地图api调起手机app

    html 部分 <div id="mapBg"> <div class="mapTab"> <a href="" ...

  5. 浏览器根对象navigator之客户端检测

    Navigator的5个主要属性: appName:Web浏览器的名称 appVersion:浏览器的版本号和其他版本信息 userAgent:浏览器在它的USER-AGENT HTTP标题中发送的字 ...

  6. 这几个Xocode插件用过一段时间还比较稳定好用,Xcode6兼容,推荐给大家:

    这几个Xocode插件用过一段时间还比较稳定好用,Xcode6兼容,推荐给大家: AdjustFontSize: 快捷调整Xcode字体,https://github.com/zats/AdjustF ...

  7. Django 多表查询 聚合查询 分组查询 F查询 Q查询

    # -------------------------------------------------------------------------------------------------- ...

  8. “拒绝了对对象数据库的 EXECUTE 权限”之解决

    “拒绝了对对象'aspnet_CheckSchemaVersion'的 EXECUTE 权限”之解决 [错误状态] “/XXX”应用程序中的服务器错误. ----------------------- ...

  9. 《鸟哥的Linux私房菜》Chapter11 20180726~20180806

    目录 1.认识Bash这个shell 1.1.硬件.核心与shell 1.2.系统的合法shell和/etc/shells功能 1.3.Bash shell的功能 1.3.1.命令修编功能 1.3.2 ...

  10. iOS开发中常用的数学函数

    iOS开发中常用的数学函数 /*---- 常用数学公式 ----*/ //指数运算 3^2 3^3 NSLog(,)); //result 9 NSLog(,)); //result 27 //开平方 ...