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) 提供负载平衡服务.负载平衡支持应用程序伸缩,并且提供应用程序故障恢复以及其他优势. 可以通过以下方式访问负 ...
随机推荐
- 读懂Android项目结构目录
我们看到下图:当我们创建了第一Android项目的时候有没有被吓到.怎么这么多目录,好头晕啊!没事, 那我们今天就了解一下这些目录是做什么的: src: src 目录是放置我们所有 Java 代码的地 ...
- 使用jQuery要注意的问题
1. $.find()与$.children()的区别 有如下HTML片段: 复制代码代码如下: <div id="div_four"> <input id=&q ...
- Fzu月赛11 老S的旅行计划 dij
Description 老S在某城市生活的非常不自在,想趁着ICPC举办期间在省内转转.已知老S所在的省有N个城市,M条无向边(对于某一对结点可能出现重边).由于省内的交通相当糟糕,通过某条边所需要花 ...
- JS小函数
join()\toString(): join()函数和toString()函数都是返回字符串类型. 针对一个数组: var arr = ["I","love" ...
- WebApi:路由和Action选择
译自:http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-and-action-selection ...
- WPF Datagrid multiple selecteditems in MVVM
I can assure you: SelectedItems is indeed bindable as a XAML CommandParameter After a lot of digging ...
- Visual Studio蛋疼问题解决
监视变量显示未定义标识符: VS2012在编译的时候采用了较快的编译模式,所以有些变量就显示未定义了. 解决方案: 项目->属性->c/c++->优化->改为禁用/OD ...
- BZOJ2990 : [Ontak2010]Keyboard
考虑从$(1,1)$开始搜索移动方案,每次移动坐标的变化量都是$2$. 如果构成了环,那么环的周长肯定是偶数. 考虑这个环一定要被若干个骨牌覆盖,且还有一个位置是空的. 所以得出环的周长是奇数,矛盾, ...
- windows自动修改ip的bat文件
@echo off title --IP自动设置 -- MODE con: COLS=80 lines=30 color 0a :main cls echo 按提示操作 echo. echo 设置为无 ...
- Haskell 笔记 ③
①循环?NO!请递归思考问题! 手艹一个求列表中最大值代码,C语言中习惯性for扫一下比较出最大值.但是可以用递归! maximum'::(Ord a)=>[a]->a maximum' ...