FZUOJ Problem 2178 礼品配送
Problem 2178 礼物分配
题目链接: Click Here~
Problem Description
Input
(N<=30) 第二行有N个整数,表示Eric所衡量的每一个礼物的价值vi。(1<=vi<=10000000) 第三行也有N个整数,表示R.W所衡量的每一个礼物的价值wi。(1<=wi<=10000000)
Output
这种话总情况是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 礼品配送相关推荐
- 年礼成快递企业不再接件主因:苹果产品最疯狂
贺文刘伟勋程志云越接近春节,顺丰快递的黄师傅和他的同伴加班的时间越长,原因是黄师傅负责写字楼里的公司开始向客户发送新年礼品,这让他们的业务量增加了近一倍.王学敏是励展华群公司的副总经理,公司主做礼品展 ...
- ArcGIS空间分析工具
1. 3D分析 1.1. 3D Features toolset 工具 工具 描述 3D Features toolset (3D 要素工具集) Add Z Information 添加 ...
- 昆明收银系统:『免费收银软件』到底是馅饼还是陷井?免费背后的危害。
昆明收银系统:『免费收银软件』到底是馅饼还是陷井?免费背后的危害. 如果有人问您:"您最喜欢什么?",你一定答不上来,但是问您:"有免费的东西可拿哦,喜欢吗?" ...
- Problem 2238 Daxia Wzc's problem 1627 瞬间移动
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1627 http://acm.fzu.edu.cn/problem.php ...
- 旅行商问题(Traveling Saleman Problem,TSP)
什么是旅行商问题 旅行商问题(Traveling Saleman Problem,TSP)是VRP的特例,由于Gaery[1]已证明TSP问题是NP难题,因此,VRP也属于NP难题. 旅行商问题(TS ...
- bzoj 2178 圆的面积并 —— 辛普森积分
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2178 先看到这篇博客:https://www.cnblogs.com/heisenberg- ...
- 中秋祝福网页_中秋客户维系关怀,该送客户什么礼品?
企业节日礼品是企业间或者商务伙伴之间相互传达美好情意的一种体现,无论是送领导.送员工.还是送合作伙伴,礼品定制都需要根据不同赠送对象来细心选择.如果想要礼品有创意同时又能表达企业理念,进而达到宣传推广 ...
- 【2017年第1期】基于外卖物流配送大数据的调度系统
蒋凡,徐明泉, 崔代锐 百度外卖研发中心 中图分类号:TP399 文献标识码:A doi:10.11959/j.issn.2096-0271.2017013 Scheduling system ...
- dijikstra 旅行商问题_第27期:基于旅行商问题(TSP)的配送网络优化—R实现
回国后,没有时间休息,一是工作不能耽误,二是很多杂乱的事情要处理,因此,公众号很久没有更新,实在抱歉! 本期的推文是关于旅行商问题(TSP)的配送网络优化,也是因为最近在指导学生参加省大学生现代物流设 ...
最新文章
- 如何让Unity支持中文
- leetcode剑指 Offer 29. 顺时针打印矩阵
- ngix 创建新的网站
- Python案例:查询城市天气并绘制最高气温与最低气温折线图
- Android 系统(184)---Android APN 配置
- 中兴Axon 30至臻版开启预售:搭载屏下摄像头技术
- 从原理到应用,一文带你了解小程序插件能力
- python 堆_【译】Python中的堆排序
- winform 属性
- window下安装scapy
- jq js json 转字符串_JSON字符串转换成JSON对象的JS代码
- java jdk学习_Java学习第一步:JDK环境搭建(纯小白向)
- Java操作Excel完成导入导出
- c语言字符程序示例,C语言程序设计实例大全
- PR剪辑视频画面翻转缩放滑动特效转场PR预设
- __wakeup()绕过
- 2023年春节放假时间安排计划用哪一提醒备忘软件记录?
- 服务器稳定度cpu温度,现在这天气我的CPU温度稳定在60度...打游戏70度,会不会烧?...
- 民间秘术——可怕的死亡诅咒
- 【统计学习方法】第7章 支持向量机