usaco 2016 Feb 负载平衡
题目大意:平面上一堆点,用两条平行于坐标轴的直线将其分为四部分,使得点数最多的一部分最少
第一维枚举,第二维三分,点集用两棵树状数组维护
#include<bits/stdc++.h>
#define maxn 100010
using namespace std;
inline int read(){
int s=;char ch=getchar();
for(;ch<''||ch>'';ch=getchar());
for(;ch>=''&&ch<='';ch=getchar())s=s*+ch-'';
return s;
}
int n;
struct node{
int x,y;
int cntx,cnty;
}s[maxn];
int cmp1(node a,node b){return a.x<b.x;}
int cmp2(node a,node b){return a.y<b.y;}
int c1[maxn];
int c2[maxn];
void add(int a[],int x,int v){
for(;x<=n;x+=x&-x)a[x]+=v;
}
int ask(int a[],int x){
int ans=;
for(;x;x-=x&(-x))ans+=a[x];
return ans;
}
int get(){
int L=,R=n,mid1,mid2,k1,k2,p1,p2;
int sum1=ask(c1,n);
int sum2=ask(c2,n);
while(R-L>=){
mid1=(L+L+R)/,mid2=(L+R+R)/;
p1=ask(c1,mid1);p2=ask(c2,mid1);
k1=max(max(p1,sum1-p1),max(p2,sum2-p2));
p1=ask(c1,mid2);p2=ask(c2,mid2);
k2=max(max(p1,sum1-p1),max(p2,sum2-p2));
if(k1>k2)L=mid1;else R=mid2;
}
int ans=(<<);
for(int i=L;i<=R;++i){
p1=ask(c1,i);p2=ask(c2,i);
ans=min(ans,max(max(p1,sum1-p1),max(p2,sum2-p2)));
}return ans;
}
int main(){
freopen("Load_Balancing.in","r",stdin);
freopen("Load_Balancing.out","w",stdout);
n=read();
for(int i=;i<=n;++i){
s[i].x=read();s[i].y=read();
}
sort(s+,s+n+,cmp2);
s[].cnty=;
for(int i=;i<=n;++i)
if(s[i].y==s[i-].y)s[i].cnty=s[i-].cnty;
else s[i].cnty=s[i-].cnty+;
sort(s+,s+n+,cmp1);
s[].cntx=;
for(int i=;i<=n;++i)
if(s[i].x==s[i-].x)s[i].cntx=s[i-].cntx;
else s[i].cntx=s[i-].cntx+;
for(int i=;i<=n;++i)add(c2,s[i].cnty,);
int L=,R=s[n].cntx,now=,ans=(<<);
for(int i=L;i<=R+&&now<=n;++i){
while(s[now].cntx<=i&&now<=n)add(c2,s[now].cnty,-),add(c1,s[now].cnty,),now++;
int k=get();
if(k<ans)ans=k;
}printf("%d\n",ans);
return ;
}
usaco 2016 Feb 负载平衡的更多相关文章
- USACO翻译:USACO 2012 FEB Silver三题
USACO 2012 FEB SILVER 一.题目概览 中文题目名称 矩形草地 奶牛IDs 搬家 英文题目名称 planting cowids relocate 可执行文件名 planting co ...
- USACO翻译:USACO 2014 FEB SILVER 三题
USACO 2014 FEB SILVER 一.题目概览 中文题目名称 自动打字 路障 神秘代码 英文题目名称 auto rblock scode 可执行文件名 auto rblock scode 输 ...
- Windows Server 2008 R2 负载平衡入门篇
一.简单介绍负载均衡 负载均衡也称负载共享,它是指负载均衡是指通过对系统负载情况进行动态调整,把负荷分摊到多个操作节点上执行,以减少系统中因各个节点负载不均衡所造成的影响,从而提高系统的工作效率.在常 ...
- Windows Server 2008R2 配置网络负载平衡(NLB)
目录 配置环境 安装 安装网络负载平衡 安装Web服务器 IIS 配置 测试 其它 配置环境 VMware:(版本10.0.01) 主集群IP:192.168.220.102 VM1:192.168. ...
- Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台 Seesaw
负载均衡系统 Seesaw Seesaw是由我们网络可靠性工程师用 Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台,就像所有好的项目一样,这个项目也是为了解决实际问题而产生的. Seesa ...
- windows2003 IIS6网络负载平衡设置
问题 随着计算机技术的不断发展,单台计算机的性能和可靠性越来越高.但现实中还是有许多应用是单台计算机难以达到,例如: 1.银行存储用户数据的数据库服务器必须保证24小时不间断的运转,并在发生严重硬件故 ...
- windows server 2003 负载平衡的详细设置步骤(转载)
声明:本文为转载. 当把一台服务器(包括Web服务器.FTP服务器或者流媒体服务器等等)放入网络中之后,随着客户端数量的不断增加,人们往往需要功能更强大.处理速度更快的服务器.为了解决这个问题,如果将 ...
- windows2003网络负载平衡设置
问题 随着计算机技术的不断发展,单台计算机的性能和可靠性越来越高.但现实中还是有许多应用是单台计算机难以达到,例如: 1.银行存储用户数据的数据库服务器必须保证24小时不间断的运转,并在发生严重硬件故 ...
- Microsoft Azure 负载平衡服务
Microsoft Azure 为在其中托管的虚拟机(IaaS) 和云服务(PaaS) 提供负载平衡服务.负载平衡支持应用程序伸缩,并且提供应用程序故障恢复以及其他优势. 可以通过以下方式访问负 ...
随机推荐
- 2.2 代码块--delphi 写日志模块
//2.2 代码块--写日志 //调用例句如:LogMsg('FTP上传线程终止',False,true); procedure LogMsg(AMsg: string; const blnIsErr ...
- 自定义鼠标光标,制作cur,设置热点,中心点。
..没哈好说的,,只是推荐一个软件 ArtCursor..非常好用. 关于另外一个更改光标的重要问题:鼠标的hotspot,也就是鼠标的作用点问题,本人关于这个问题纠结了很久,始终无法找到更改HCUR ...
- 01背包 ZOJ 3931 Exact Compression
题目连接 题意:n个数字构建哈夫曼树,问是否存在这样一棵树使得:(Fi数字大小,Ci哈夫曼表示下,'0'的数量) 分析:每次从优先队列取出两个数字可以互换位置,这样可以01互换.设a[i] <= ...
- Oracle中Cursor的用法
关键字 概念 类型 异常处理 一 概念 游标是SQL的一个内存工作区,由系统或用户以变量的形式定义.游标的作用就是用于临时存储从数据库中提取的数据块.在某些情况下,需要把数据从存放在磁 盘的表中 ...
- ORA-01034错误:ORALCE NOT CONNECT
解决办法: 启动数据库 sqlplus '/as sysdba ' startup;
- POJ 1106 Transmitters(计算几何)
题目链接 切计算几何,感觉计算几何的算法还不熟.此题,枚举线段和圆点的直线,平分一个圆 #include <iostream> #include <cstring> #incl ...
- URAL 1501. Sense of Beauty(记忆化搜索)
题目链接 本来暴力写个TLE了,加上记忆化就A了. #include <cstring> #include <cstdio> #include <string> # ...
- 【CodeVS】p1038 一元三次方程求解
题目描述 Description 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100 ...
- 【bzoj1455】罗马游戏 可并堆
2016-05-31 10:04:41 可并堆的裸题. 左偏树(小根堆为例 性质 1.满足堆的性质,每个节点权值小于左右儿子权值 2.每个节点有dis值,表示子树最浅的叶子深度加1 3.左子树dis ...
- jQuery的Dom插入操作图示