数字分组问题

Problem 1:给定n个物品,将它们分成两堆,使他们的质量之差最小,求这个最小值

poj 2311

Sol:差最小是0,此时分成的两堆的质量都是sum/2,因此让背包的总容量为sum/2,就是让某一堆尽量接近sum/2,此时两堆的差最小

Code:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<map>
using namespace std;int m,n;
int col;
map<string,int>mch;
int v[15][110],sum[15];
int f[500*1010];int main(){scanf("%d%d",&m,&n);while(n&&m){col=0;//memset(mch,0,sizeof(mch));
        mch.clear();memset(v,0,sizeof(v));memset(sum,0,sizeof(sum));string s;for(int i=1;i<=m;++i){cin>>s;mch[s]=++col;s.clear();}int x;for(int i=1;i<=n;++i){scanf("%d",&x);cin>>s;v[mch[s]][++v[mch[s]][0]]=x;sum[mch[s]]+=x;s.clear();}int ans=0;for(int t=1;t<=col;++t){memset(f,0,sizeof(f));for(int i=1;i<=v[t][0];++i)for(int j=sum[t]/2;j>=v[t][i];--j)f[j]=max(f[j],f[j-v[t][i]]+v[t][i]);ans+=sum[t]-f[sum[t]/2];}printf("%d\n",ans);scanf("%d%d",&m,&n);}return 0;
}

View Code

Problem 2:给定n个物品,将它们分成两堆,使他们的质量之差最大,但不能超过这些物品中最大的质量

没找到题,求资源

Sol:相差最大时,两堆物品的质量分别是(sum+max)/2,(sum-max)/2,因此让背包容量为(sum+max)/2即可

Code:

 1 #include<cstring>
 2 #include<cstdio>
 3 #include<iostream>
 4 #include<algorithm>
 5 using namespace std;
 6
 7 int n,m,mx=-0x3f3f3f3f,sum;
 8 int a[30];
 9 bool f[20*100010];
10
11 int main(){
12     scanf("%d",&n);
13     for(int i=1;i<=n;++i) scanf("%d",&a[i]),sum+=a[i],mx=max(mx,a[i]);
14     m=(sum+mx)/2;
15     f[0]=1;
16     for(int i=1;i<=n;++i)
17         for(int j=m;j>=a[i];--j)
18             f[j]|=f[j-a[i]];
19     for(int i=(sum-mx)/2;i<=sum/2;++i)
20         if(f[i]&&f[sum-i]){
21             cout<<sum-2*i;return 0;
22         }
23     return 0;
24 }
25
26
27 /*
28 5
29 2 4 5 8 10
30 */

View Code

转载于:https://www.cnblogs.com/Secret-Service/p/7466281.html

0/1背包总结(持续更新...)相关推荐

  1. Spring Boot 2.4.0 M2 Release Notes持续更新

    Spring Boot 2.4.0 M2 Release Notes持续更新 Spring Boot 2.4.0 M2 Release Notes Spring Boot 2.4.0 M2 Relea ...

  2. 固件 android3.0,华为Ascend P7 EMUI3.0 官方固件-资源-持续更新(2.2更新)

    本帖最后由 琼霄舞风云 于 2015-2-5 10:28 编辑 华为Ascend P7 EMUI3.0 官方固件 为了方便大家下载最新固件,小编特此整理本帖(本贴持续更新) 刷机方法参考该贴: 文件校 ...

  3. exure9 秘钥_AxureRP9.0秘钥(持续更新)

    Axure RP 9.0.0.3717-3719 正式版 Axure Enterprise Edition Licensee :Freecrackdownload.com KEY:5vYpJgQZ43 ...

  4. php.ini配置文件详解(mac nginx1.8.0 php5.6 )持续更新中

    软硬件环境 mac ox10.11 nginx1.8.0 php5.6 不了解的部分 ;;;;;;;;;;;;;;;;;;;; ; php.ini Options ; ;;;;;;;;;;;;;;;; ...

  5. AutoJS4.1.0实战教程 ---火热持续更新中

    序章 AutoJs4.1.0 基本介绍 https://blog.csdn.net/zy0412326/article/details/105111820 AutoJs4.1.0 元素层次分析. ht ...

  6. netty4.0源码解析(持续更新)

    文章目录 netty 1:环境配置 与其他对比 future缺陷 2:结构 3:设计模式 delay 策略模式 todo 责任链模式 todo 单例模式模式 todo 装饰者模式 ReplayingD ...

  7. Android 7.0 的改动(持续更新)

    今天Google提供了Android 7.0正式版的推送,那么Android 7.0到底有哪些改动和特点呢,下面我将根据自己查阅的资料做一个笔记,主要是记录对我个人来说比较有感觉的改动. Androi ...

  8. Linux游戏0 A.D.操作说明(持续更新中)

    功能 操作 切换为窗口 Ctrl+Enter 打开/关闭提示 Ctrl+P 建筑 作用 城镇中心可以制造农民和士兵 磨坊,用来存储食物,以及开发相关科技 民房,用来提供人口上限,和城镇中心一样可以制造 ...

  9. 【华为AI比赛】广告信息流跨域CTR预估(持续更新)

    学习总结 暂时只是简单提交baseline,提交catboost后的线上成绩为0.71左右,持续更新本贴. 文章目录 学习总结 一.赛题解读 1.1 CTR赛题 1.2 比赛评估指标 1.3 比赛数据 ...

  10. pip更新失败_最全Tensorflow2.0 入门教程持续更新

    最全Tensorflow 2.0 入门教程持续更新: Doit:最全Tensorflow 2.0 入门教程持续更新​zhuanlan.zhihu.com 完整tensorflow2.0教程代码请看ht ...

最新文章

  1. 使用C#格式化字符串 1
  2. thymeleaf中的模板布局
  3. order by 空值排在最后_当梅根·马克尔最后一次皇室活动选择选择翡翠绿时证明她非常时髦...
  4. 史上最快的拼接字串方法
  5. 制作wordpress页面的学习记录
  6. tomcat端口被占用-----windows下如何查询某个端口被哪个进程占用以及如何杀死进程
  7. linux下的各种shell介绍(bash和dash转换)
  8. 韩企全球首造72层3D NAND芯片 下半年或量产
  9. 基于Windows8与Visual Studio2012开发内核隐藏注册表
  10. python银行排队系统_python-我需要基于Web的系统的消息/排队解决...
  11. Spring 事务模型
  12. 常用的锂电池充电IC芯片
  13. msyql数据库[云图智联]
  14. 【实习周报】2019年5月 前端开发实习工作周报汇总
  15. oracle dbms_lob trim,DBMS_LOB包基础应用
  16. Structure of Heap
  17. 自己写操作系统学习总结
  18. 帕金森病会引起哪些并发症
  19. 学生网页课程设计期末作业 HTML+CSS+JavaScript甜品蛋糕网页设计(5页)
  20. 研发效能双周报 10 月 vol.2 | 两份技术前瞻,哪些新技术将助力效能提升?

热门文章

  1. c++ 调用程序接口_添加系统调用(返回文件信息)
  2. Mysql外键的变种 三种关系
  3. Latex 常用代码
  4. apache server和tomcat集群配置一:水平负载
  5. MYSQL数据丢失讨论
  6. c语言不用临时变量交换两个数程序分析
  7. 明天发布一个基于Silverlight的类Visio小型绘图工具项目。
  8. Nginx之11吸星大法 - (页面缓存)
  9. Python标准库学习笔记7:数据持久存储与交换
  10. ABAP 内表(internal table) 标题行(header line) 工作区(work area) 简介 - [SAP]