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

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

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

 #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. 每周.NET前沿技术文章摘要(2017-05-24)

    汇总国外.NET社区相关文章,覆盖.NET ,ASP.NET等内容: .NET Free eBook/Guide on '.NET Microservices – Architecture for C ...

  2. dropout理解:1神带9坑

    Dropout是深度学习中防止过拟合的一项非常常见的技术,是hinton大神在12年提出的一篇论文里所采用的方法.有传言hinton大神的数学功底不是很好,所以他所提出的想法背后的数学原理并不是很复杂 ...

  3. Handwritten Parsers & Lexers in Go (翻译)

    用go实现Parsers & Lexers 在当今网络应用和REST API的时代,编写解析器似乎是一种垂死的艺术.你可能会认为编写解析器是一个复杂的工作,只保留给编程语言设计师,但我想消除这 ...

  4. 自动化测试辅助工具(Selenium IDE等)

    本随表目录 Selenium IDE安装和使用 FireBug安装和使用 FirePath安装和使用   Selenium IDE安装 方式一:打开Firefox-->添加组件-->搜索出 ...

  5. js控制图片自动缩放,实现铺满盒子,不变形,完全局中

    此js一般用于控制图片铺满盒子,但是比例不变,并且绝对局中原理:判断图片的高宽与盒子高宽的大小的关系,然后通过比例来控制图片的缩放及定位<!DOCTYPE html PUBLIC "- ...

  6. php array_walk

    PHP array_walk() 函数 对数组中的每个元素应用用户自定义函数: <?php function myfunction($value,$key) { echo "The k ...

  7. animate.css – 齐全的CSS3动画库

    animate.css – 齐全的CSS3动画库 演 示 下 载   简介 animate.css 是一个来自国外的 CSS3 动画库,它预设了抖动(shake).闪烁(flash).弹跳(bounc ...

  8. ffempg支持文件解码

    在做一个数据通道 要求有两个 1.支持打开实时流,解码得到图片 2.支持打开视频文件,得到解码图片 第一个要求前任已经实现 bool FfmpegStreamChr::Open(const char ...

  9. 横向、纵向时间轴timeline系列

    近期移动端项目用到了很多时间轴.纵向的.开始可以实现,但是不利于维护.整理下, 以作为备份留存学习参考.子元素的 标签的 :before实现圆点,:after实现边线border纵向时间轴,单一右边内 ...

  10. css条纹背景

    一. 水平条纹 1. 两种颜色: html <div class="stripe"></div> css .stripe{ width: 250px; he ...