qwb和李主席
qwb和李主席
Time Limit: 4 Sec Memory Limit: 128 MB
Description
Input
输入包含多组测试数据,处理到文件结束。
每组测试数据的第一行是一个正整数N(0 <= N <=36
)表示物品的总个数.。
接下来输入N个浮点数(最多精确到分),表示每个物品的价值V(0<V<=1e9)。
Output
对于每组测试数据,输出能够使qwb和李主席各自所得到的物品的总价值之差的最小值(精确到分),每组测试数据输出占一行。
Sample Input
3 0.01 0.1 1
2 1 1
Sample Output
0.89
0.00
分析:n很小v很大的情况下不能背包;
考虑折半搜索,枚举其中一半,然后在另一半中二分即可;
注意浮点数*200倍变偶数取整的技巧;
代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <climits>
#include <cstring>
#include <string>
#include <set>
#include <bitset>
#include <map>
#include <queue>
#include <stack>
#include <vector>
#include <cassert>
#include <ctime>
#include<unordered_map>
#define rep(i,m,n) for(i=m;i<=n;i++)
#define mod 1000000007
#define inf 0x3f3f3f3f
#define vi vector<int>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define ll long long
#define pi acos(-1.0)
#define pii pair<int,int>
#define sys system("pause")
const int maxn=5e4+;
const int N=5e2+;
using namespace std;
ll gcd(ll p,ll q){return q==?p:gcd(q,p%q);}
ll qpow(ll p,ll q){ll f=;while(q){if(q&)f=f*p%mod;p=p*p%mod;q>>=;}return f;}
int n,m,k,t;
ll a[<<],b[<<],c[],d[];
void gao(ll d[],ll a[],int num)
{
for(int i=;i<(<<num);i++)
{
d[i]=;
for(int j=;j<num;j++)
{
if(i>>j&)
{
d[i]+=a[j];
}
}
}
}
int main()
{
int i,j;
while(~scanf("%d",&n))
{
int cnta=,cntb=;
ll sum=;
rep(i,,n)
{
double x;
scanf("%lf",&x);
ll y=round(x*); //(ll)(x*200+0.1);
sum+=y;
if(i<=n/)c[cnta++]=y;
else d[cntb++]=y;
}
gao(a,c,cnta);
gao(b,d,cntb);
cnta=(<<cnta);
cntb=(<<cntb);
sort(b,b+cntb);
ll ret=1e18;
rep(i,,cnta-)
{
int pos=lower_bound(b,b+cntb,sum/-a[i])-b;
if(pos<cntb)ret=min(ret,abs(sum-*(a[i]+b[pos])));
if(pos->=)ret=min(ret,abs(sum-*(a[i]+b[pos-])));
}
printf("%.2f\n",ret/200.0);
}
return ;
}
qwb和李主席的更多相关文章
- 董事局主席董事长总裁首席执行官CEO总裁董事监事区别
		
董事长是公司的最大股东:董事长是董事会的主席,一般是企业的所有者,掌握企业的股权并且决定企业的发展策略. 董事局主席通常是在大财团中才会出现,董事局主席管数个董事长,一个大财团涉及很多方面的业务,因此 ...
 - 2017年TOP100summit开幕在即, 15位大咖担任联席主席甄选最值得学习的100个研发案例
		
从万维网到物联网,从信息传播到人工智能,20年间软件研发行业趋势发生了翻天覆地的变化.大数据.云计算.AI等新兴领域逐渐改变我们的生活方式,Devops.容器.深度学习.敏捷等技术方式和工作理念对软件 ...
 - qwb VS 去污棒
		
qwb VS 去污棒 Time Limit: 2 Sec Memory Limit: 256 MB Description qwb表白学姐失败后,郁郁寡欢,整天坐在太阳底下赏月.在外人看来,他每天自 ...
 - bzoj3207--Hash+主席树
		
题目大意: 给定一个n个数的序列和m个询问(n,m<=100000)和k,每个询问包含k+2个数字:l,r,b[1],b[2]...b[k],要求输出b[1]~b[k]在[l,r]中是否出现. ...
 - bzoj1901--树状数组套主席树
		
树状数组套主席树模板题... 题目大意: 给定一个含有n个数的序列a[1],a[2],a[3]--a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]--a[ ...
 - BZOJ 3626: [LNOI2014]LCA [树链剖分 离线|主席树]
		
3626: [LNOI2014]LCA Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2050 Solved: 817[Submit][Status ...
 - BZOJ 1146: [CTSC2008]网络管理Network [树上带修改主席树]
		
1146: [CTSC2008]网络管理Network Time Limit: 50 Sec Memory Limit: 162 MBSubmit: 3522 Solved: 1041[Submi ...
 - BZOJ 2588: Spoj 10628. Count on a tree [树上主席树]
		
2588: Spoj 10628. Count on a tree Time Limit: 12 Sec Memory Limit: 128 MBSubmit: 5217 Solved: 1233 ...
 - BZOJ 1901: Zju2112 Dynamic Rankings[带修改的主席树]【学习笔记】
		
1901: Zju2112 Dynamic Rankings Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 7143 Solved: 2968[Su ...
 
随机推荐
- VS2010 使用TeeChart绘图控件 - 之一 - 控件和类的导入
			
vs2010的用法和vc6有很大的不同,特别是在一些函数调用那里,当然.控件导入也是很不一样的 安装好控件后就可以在工程里加入teechart控件了 加入方法有如下几种: 1.添加Teechart控件 ...
 - git ldap
			
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md ldap : enabled : true host : 'ope ...
 - Spark中统计程序运行时间
			
import java.text.SimpleDateFormat import java.util.Date val s=NowDate() //显示当前的具体时间 val now=new Date ...
 - 67.员工职位变动js
			
1.员工职位jsp <%@ page language="java" import="java.util.*" pageEncoding="UT ...
 - 58. Extjs grid CheckboxSelectionModel 单选
			
转自:https://kabuka.iteye.com/blog/581823 默认的 new Ext.grid.CheckboxSelectionModel 都是可以多选的,但是有时候需要控制单选时 ...
 - 云栖社区>     >     正文  永久免费SSL安全证书Letsencrypt安装使用方法
			
./letsencrypt-auto certonly --standalone --email admin@thing.com -d thing.com -d www.thing.com
 - Java I/O 的工作机制浅析
			
I/O 问题可以说是当今互联网 Web 应用中所面临的主要问题之一,因为当前在这个海量数据时代,数据在网络中随处流动.这个流动的过程中都涉及到 I/O 问题,可以说大部分 Web 应用系统的瓶颈都是 ...
 - 基于Spark Streaming预测股票走势的例子(一)
			
最近学习Spark Streaming,不知道是不是我搜索的姿势不对,总找不到具体的.完整的例子,一怒之下就决定自己写一个出来.下面以预测股票走势为例,总结了用Spark Streaming开发的具体 ...
 - JavaScript--Date 日期对象
			
日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒). 定义一个时间对象 : var Udate=new Date(); 注意:使用关键字new,Date()的首字母必须大写. 使 ...
 - 一键生成Spring MVC + MyBatis + maven项目
			
首先创建一个新的maven项目,在src/main/java创建一个类Test 然后在Test复制以下代码: import java.io.*; import java.sql.Connection; ...