Problem 2178 礼物分配

题目链接: Click Here~

Problem Description

在双胞胎兄弟Eric与R.W的生日会上,他们共收到了N个礼物,生日过后他们决定分配这N个礼物(numv+numw=N)。对于每一个礼物他们俩有着各自心中的价值vi和wi,他们要求各自分到的礼物数目|numv-numw|<=1,而且各自所衡量的礼物价值的差值|sumv-sumw|尽可能小,如今他们想知道最小的差值是多少。

 Input

第一行为一个整数表示数据组数T。 接下来T组数组,每组数据第一行为一个整数N。

(N<=30) 第二行有N个整数,表示Eric所衡量的每一个礼物的价值vi。(1<=vi<=10000000) 第三行也有N个整数,表示R.W所衡量的每一个礼物的价值wi。(1<=wi<=10000000)

 Output

对于每组数据。输出最小的差值。
算法分析:
能够easy想到的方法是直接枚举暴力。如今对第一个人来分析,每一个物品都有选或者不选的可能。

这种话总情况是2^30次方。肯定超时。想着怎么优化。

非常easy的想到了二分搜索。就是折半查找。

思想就好是先预处理出前一半部分的结果。

然后,在用前面的结果推断后面的情况。这样就能够优化到了2^15次方了。

#include <iostream>
#include <algorithm>
#include <vector>
#include <cstdio>
#include <cstring>
using namespace std;typedef __int64 LL;
const int INF = 1 << 30;
const int MAXN = 40;
vector<int> num[MAXN];
int vi[MAXN],wi[MAXN];int main() {int n,T;scanf("%d",&T);while(T--) {scanf("%d",&n);for(int i = 0;i < n;++i) {scanf("%d",&vi[i]);}for(int i = 0;i < n;++i) {scanf("%d",&wi[i]);}for(int i = 0;i <= n;++i)num[i].clear();int n2 = n/2;int cnt,sum1 ,sum2,sum;for(int S = 0;S < 1 << n2; ++S) {cnt = 0,sum1 = 0,sum2 = 0;for(int i = 0;i < n2;++i) {if(S >> i & 1) {sum1 += vi[i];cnt++;} else {sum2 += wi[i];}}num[cnt].push_back(sum1 - sum2);}for(int i = 0;i < n2;++i) {sort(num[i].begin(),num[i].end());num[i].erase(unique(num[i].begin(),num[i].end()),num[i].end());}int ans = INF;for(int S = 0;S < 1 << (n-n2);++S) {sum,cnt = 0,sum1 = 0,sum2 = 0;for(int i = 0;i < (n-n2);++i) {if(S >> i & 1) {sum1 += vi[i+n2];cnt++;} else {sum2 += wi[i+n2];}}int t = n - n2 - cnt;sum = sum1 - sum2;    vector<int>::iterator iter;iter = lower_bound(num[t].begin(),num[t].end(),-sum);if(iter != num[t].end() && abs(*iter + sum) < ans)ans = abs(*iter + sum);if(iter != num[t].begin()) {--iter;if(abs(*iter + sum) < ans) ans = abs(*iter + sum);}}printf("%d\n",ans);}return 0;
}/*3
1 2 3
4 2 15
1 2 3 5 4
1 1 1 1 56
1 2 3 4 5 5
1 1 1 1 1 8*/

版权声明:本文博客原创文章,博客,未经同意,不得转载。

转载于:https://www.cnblogs.com/lcchuguo/p/4670678.html

FZUOJ Problem 2178 礼品配送相关推荐

  1. 年礼成快递企业不再接件主因:苹果产品最疯狂

    贺文刘伟勋程志云越接近春节,顺丰快递的黄师傅和他的同伴加班的时间越长,原因是黄师傅负责写字楼里的公司开始向客户发送新年礼品,这让他们的业务量增加了近一倍.王学敏是励展华群公司的副总经理,公司主做礼品展 ...

  2. ArcGIS空间分析工具

    1. 3D分析 1.1. 3D Features toolset       工具 工具 描述 3D Features toolset (3D 要素工具集) Add Z Information 添加 ...

  3. 昆明收银系统:『免费收银软件』到底是馅饼还是陷井?免费背后的危害。

    昆明收银系统:『免费收银软件』到底是馅饼还是陷井?免费背后的危害. 如果有人问您:"您最喜欢什么?",你一定答不上来,但是问您:"有免费的东西可拿哦,喜欢吗?" ...

  4. Problem 2238 Daxia Wzc's problem 1627 瞬间移动

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1627 http://acm.fzu.edu.cn/problem.php ...

  5. 旅行商问题(Traveling Saleman Problem,TSP)

    什么是旅行商问题 旅行商问题(Traveling Saleman Problem,TSP)是VRP的特例,由于Gaery[1]已证明TSP问题是NP难题,因此,VRP也属于NP难题. 旅行商问题(TS ...

  6. bzoj 2178 圆的面积并 —— 辛普森积分

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2178 先看到这篇博客:https://www.cnblogs.com/heisenberg- ...

  7. 中秋祝福网页_中秋客户维系关怀,该送客户什么礼品?

    企业节日礼品是企业间或者商务伙伴之间相互传达美好情意的一种体现,无论是送领导.送员工.还是送合作伙伴,礼品定制都需要根据不同赠送对象来细心选择.如果想要礼品有创意同时又能表达企业理念,进而达到宣传推广 ...

  8. 【2017年第1期】基于外卖物流配送大数据的调度系统

    蒋凡,徐明泉, 崔代锐 百度外卖研发中心 中图分类号:TP399    文献标识码:A doi:10.11959/j.issn.2096-0271.2017013 Scheduling system ...

  9. dijikstra 旅行商问题_第27期:基于旅行商问题(TSP)的配送网络优化—R实现

    回国后,没有时间休息,一是工作不能耽误,二是很多杂乱的事情要处理,因此,公众号很久没有更新,实在抱歉! 本期的推文是关于旅行商问题(TSP)的配送网络优化,也是因为最近在指导学生参加省大学生现代物流设 ...

最新文章

  1. 如何让Unity支持中文
  2. leetcode剑指 Offer 29. 顺时针打印矩阵
  3. ngix 创建新的网站
  4. Python案例:查询城市天气并绘制最高气温与最低气温折线图
  5. Android 系统(184)---Android APN 配置
  6. 中兴Axon 30至臻版开启预售:搭载屏下摄像头技术
  7. 从原理到应用,一文带你了解小程序插件能力
  8. python 堆_【译】Python中的堆排序
  9. winform 属性
  10. window下安装scapy
  11. jq js json 转字符串_JSON字符串转换成JSON对象的JS代码
  12. java jdk学习_Java学习第一步:JDK环境搭建(纯小白向)
  13. Java操作Excel完成导入导出
  14. c语言字符程序示例,C语言程序设计实例大全
  15. PR剪辑视频画面翻转缩放滑动特效转场PR预设
  16. __wakeup()绕过
  17. 2023年春节放假时间安排计划用哪一提醒备忘软件记录?
  18. 服务器稳定度cpu温度,现在这天气我的CPU温度稳定在60度...打游戏70度,会不会烧?...
  19. 民间秘术——可怕的死亡诅咒
  20. 【统计学习方法】第7章 支持向量机

热门文章

  1. 蚂蚁金服智能推荐引擎解决方案与实践 1
  2. UVa 10101 - Bangla Numbers
  3. crash:overview
  4. 医美互联网公司:新氧
  5. 嵌入式系统工程化设计7
  6. 【题解】同济线代习题二 8.1
  7. wkhtmltopdf 字体无效问题
  8. CJS,AMD,UMD和ESM
  9. 【论文阅读笔记|ACL2022】Continual Sequence Generation with Adaptive Compositional Modules
  10. Java计算机毕业设计图书馆管理系统演示录像源码+系统+数据库+lw文档