[bzoj4411] [Usaco2016 Feb]Load balancing
先离散化一下(也可以不用
枚举横坐标,用线段树维护两边纵坐标上的节点数。
每次在线段树上二分。。。(感觉似乎树状数组也行?
#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的更多相关文章
- BZOJ4411——[Usaco2016 Feb]Load balancing
1.题意: 给出N个平面上的点.保证每一个点的坐标都是正奇数. 你要在平面上画两条线,一条是x=a,一条是y=b,且a和b都是偶数. 直线将平面划成4个部分,要求包含点数最多的那个部分点数最少. 2. ...
- bzoj千题计划180:bzoj4411: [Usaco2016 Feb]Load balancing
http://www.lydsy.com/JudgeOnline/problem.php?id=4411 用树状数组维护扫描线 一个树状数组维护扫描线之上的y<=i点,另一个维护扫描线之下y&l ...
- BZOJ 4411: [Usaco2016 Feb]Load balancing 线段树+二分
code: #include <bits/stdc++.h> #define N 100060 #define M 1000000 #define lson x<<1 #def ...
- bzoj4409&&bzoj4410&&bzoj4411[Usaco2016 Feb Platinum]题解
辣鸡wyz最近状态奇差,于是想用usaco题找找手感,万万没想到被虐了一脸TAT 先贴代码,有空再填坑 4409[Usaco2016 Feb]Circular barn #include <io ...
- 【架构】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 ...
- 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 ...
- Codeforces Educational Codeforces Round 3 C. Load Balancing 贪心
C. Load Balancing 题目连接: http://www.codeforces.com/contest/609/problem/C Description In the school co ...
- UVA 12904 Load Balancing 暴力
Load Balancing Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/vi ...
- Load Balancing 折半枚举大法好啊
Load Balancing 给出每个学生的学分. 将学生按学分分成四组,使得sigma (sumi-n/4)最小. 算法: 折半枚举 #include <iostrea ...
随机推荐
- Swift MD5加密 所需桥接文件
Swift MD5加密在github有一个非常好的第三方库,使用也比较简单,还有很多加密方法,如果需要,点击这里下载 对于那些不需要太多的加密,只需要MD5加密的同学,我建议还是不要用第三方库. 因为 ...
- 数据库的SQL优化
1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. (因为在条件查询条件添加索引,会直接被检索到列,会非常的快速) 2.应尽量避免在 wher ...
- 改造 Combo Select支持服务器端模糊搜索
项目中使用了 combo select,为缺省的select增加模糊搜索的功能,一直运行得很好. 1 碰到的问题 但最近碰到一个大数据量的select:初始化加载的数据项有2000多个.我们采用 ...
- c#中不同类中变量的引用方法
(1)如果两个类没有继承关系,存取另一个类中变量的方法如下: public class A { // 注意: // Count是静态变量(static),称为类变量.类变量无需实例化即可使用 publ ...
- async await promise
async 异步函数,以后可能会用得很广. 1.箭头函数: 没有{ }时不写return 也有返回值 2.Promise : 异步神器,很多异步api都是基于Promise 3.new Promise ...
- Python的__getattr__和__getattribute__
__getattr____getattr__在当前主流的Python版本中都可用,重载__getattr__方法对类及其实例未定义的属性有效.也就属性是说,如果访问的属性存在,就不会调用__getat ...
- Python 开发个人微信号在运维开发中的使用
一.主题:Python 开发个人微信号在运维开发中的使用 二.内容: 企业公众号 介绍开发微信公众号的后台逻辑,包括服务器验证逻辑.用户认证逻辑 个人微信号 面对企业微信的种种限制,可以使用 Itch ...
- 基于MongoDb官方C#驱动封装MongoDbCsharpHelper类(CRUD类)
近期工作中有使用到 MongoDb作为日志持久化对象,需要实现对MongoDb的增.删.改.查,但由于MongoDb的版本比较新,是2.4以上版本的,网上已有的一些MongoDb Helper类都是基 ...
- chrome调试工具高级不完整使用指南(优化篇)
上一篇文章我们说了chrome调试工具的一些比较基础功能的用法,接下来我们要在这一篇文章中说一说,其他一些chrome调试工具的使用方法 2.1.5 Network模块 在netWork模块中,大致上 ...
- T-SQL逻辑查询处理
引言 本文是对<Microsoft SQL SERVER 2008技术内幕 T-SQL查询>中的第一章做的阅读笔记,这一章的主要内容是分析SQL查询中各子句的执行顺序.如果你对此已了然于胸 ...