先离散化一下(也可以不用

  枚举横坐标,用线段树维护两边纵坐标上的节点数。

  每次在线段树上二分。。。(感觉似乎树状数组也行?

 #include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=;
const int mxnode=;
struct poi{
int x,y;
}a[maxn];
struct yy{
int y,id;
}y[maxn];int cnty;
int sz[][mxnode],lnum[],rnum[];
int i,j,k,n,m,ans,size; int ra;char rx;
inline int read(){
rx=getchar(),ra=;
while(rx<''||rx>'')rx=getchar();
while(rx>=''&&rx<='')ra*=,ra+=rx-,rx=getchar();return ra;
}
bool cmpy(yy a,yy b){return a.y<b.y;}
bool cmppoi(poi a,poi b){return a.x<b.x;}
inline int min(int a,int b){return a<b?a:b;}
inline int max(int a,int b){return a>b?a:b;}
inline int query(){
int p=,lc,rc;bool flag=;
lnum[]=lnum[]=rnum[]=rnum[]=;
while(){
lc=p<<,rc=lc|;
if(p>size)lc=rc=p,flag=;
if(max(lnum[]+sz[][lc],lnum[]+sz[][lc]) < max(rnum[]+sz[][rc],rnum[]+sz[][rc]))
lnum[]+=sz[][lc],lnum[]+=sz[][lc],p=rc;
else rnum[]+=sz[][rc],rnum[]+=sz[][rc],p=lc;
//printf(" %d %d %d %d %d\n",lnum[0],lnum[1],rnum[0],rnum[1],p);
if(flag)
return max(max(lnum[],lnum[]),max(rnum[],rnum[]));
} }
int main(){
n=read();
for(i=;i<=n;i++)a[i].x=read(),a[i].y=y[i].y=read(),y[i].id=i;
sort(y+,y++n,cmpy);
for(i=;i<=n;i++)
cnty+=y[i].y!=y[i-].y,a[y[i].id].y=cnty;
for(size=;size<cnty;size<<=);size--;//printf(" %d\n",size);
sort(a+,a++n,cmppoi); for(i=;i<=n;i++)
++sz[][a[i].y+size];
for(i=size;i;i--)sz[][i]=sz[][i<<]+sz[][i<<|]; int now=;ans=query();
for(i=;i<=n;i++)if(a[i].x!=a[i+].x)
{
// printf("try:%d\n",a[i].x);
for(;now<=i;now++)
for(j=a[now].y+size;j;j>>=)++sz[][j],--sz[][j];
ans=min(ans,query());
}
printf("%d\n",ans);
return ;
}

[bzoj4411] [Usaco2016 Feb]Load balancing的更多相关文章

  1. BZOJ4411——[Usaco2016 Feb]Load balancing

    1.题意: 给出N个平面上的点.保证每一个点的坐标都是正奇数. 你要在平面上画两条线,一条是x=a,一条是y=b,且a和b都是偶数. 直线将平面划成4个部分,要求包含点数最多的那个部分点数最少. 2. ...

  2. bzoj千题计划180:bzoj4411: [Usaco2016 Feb]Load balancing

    http://www.lydsy.com/JudgeOnline/problem.php?id=4411 用树状数组维护扫描线 一个树状数组维护扫描线之上的y<=i点,另一个维护扫描线之下y&l ...

  3. BZOJ 4411: [Usaco2016 Feb]Load balancing 线段树+二分

    code: #include <bits/stdc++.h> #define N 100060 #define M 1000000 #define lson x<<1 #def ...

  4. bzoj4409&&bzoj4410&&bzoj4411[Usaco2016 Feb Platinum]题解

    辣鸡wyz最近状态奇差,于是想用usaco题找找手感,万万没想到被虐了一脸TAT 先贴代码,有空再填坑 4409[Usaco2016 Feb]Circular barn #include <io ...

  5. 【架构】How To Use HAProxy to Set Up MySQL Load Balancing

    How To Use HAProxy to Set Up MySQL Load Balancing Dec  2, 2013 MySQL, Scaling, Server Optimization U ...

  6. CF# Educational Codeforces Round 3 C. Load Balancing

    C. Load Balancing time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  7. Codeforces Educational Codeforces Round 3 C. Load Balancing 贪心

    C. Load Balancing 题目连接: http://www.codeforces.com/contest/609/problem/C Description In the school co ...

  8. UVA 12904 Load Balancing 暴力

    Load Balancing Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/vi ...

  9. Load Balancing 折半枚举大法好啊

    Load Balancing 给出每个学生的学分.   将学生按学分分成四组,使得sigma (sumi-n/4)最小.         算法:   折半枚举 #include <iostrea ...

随机推荐

  1. Android破解学习之路(四)——Android游戏 3D摩托飞车破解

    经过前面三期的破解,想必大家已经非常熟悉破解的流程,这一篇也算是练手项目,我们继续来练习吧 apk下载地址:链接: https://pan.baidu.com/s/1sl3b3R3 密码: 6666 ...

  2. iOS 环信集成项目应用

    环信iOS端3.0版本集成记录--聊天界面篇 环信离线推送证书... 1,环信处在后台的时候,消息的接收与推送 离线发推送 配置属性 EMCallOptions *options = [[EMClie ...

  3. php html5 文件上传 (原创)

    今天自己写了一个HTML5+FileReader+php 的文件上传,ajax异步上传也支持 git 下载:git clone https://github.com/jiechengyang/HTML ...

  4. MySQL主从复制原理以及架构

    1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的 数据复制到其它主机(slaves)上,并 ...

  5. jquery学习总结(超级详细)

    本文仅针对jquery的部分知识点做总结,更为全面的可以去官网看中文文档.可以更为详细的了解jquery及其特性.       window.onload $(document).ready() 执行 ...

  6. 妙味课堂:JavaScript初级--第11课:字符串、查找高亮显示

    1.数字字母 Unicode 编码 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content- ...

  7. Linux下查找文件的方法

    在Linux环境下查找一个文件的方法:find 路径 -name 'filename',filename不清楚全名的话可以用*号进行匹配,如“tomcat.*”.如果不清楚路径的话可以用"/ ...

  8. TurnipBit:和孩子一起动手DIY“滚动”的生日礼物

    当孩子的生日来临之时,做父母的总是会为该为孩子准备什么礼物而烦恼.下面就教家长朋友们利用TurnipBit开发板DIY一份"特殊"的生日礼物,不仅能增加与孩子的互动性还能提升孩子在 ...

  9. angular4.0项目main.ts详解

    main.ts负责引导整个angular应用的起点 // 导入enableProdMode用来关闭angular开发者模式 import { enableProdMode } from '@angul ...

  10. go语言 前言

    1什么是Go? Go是一门开源.并发支持.具有垃圾回收机制.编译性系统编程语言.在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点.被称为21世纪的C语言.Go语言已经成为云计算.云存储时代 ...