考虑把所有石头翻到直线y=x同侧,此时可以保证篱笆长度最短。

这种最短的篱笆一共有4种可能,枚举每种可能然后$O(n)$检验求出答案即可。

#include<cstdio>
const int N=1000000,inf=~0U>>1;
int n,i,x[N],y[N],w[N],lx=inf,rx,ly=inf,ry,ans=inf,now;bool v[N],fin[N];
inline void read(int&a){char c;while(!(((c=getchar())>='0')&&(c<='9')));a=c-'0';while(((c=getchar())>='0')&&(c<='9'))(a*=10)+=c-'0';}
inline void max(int&a,int b){if(a<b)a=b;}
inline void min(int&a,int b){if(a>b)a=b;}
void cal(int lx,int rx,int ly,int ry){
for(i=now=0;i<n;i++){
if(lx<=x[i]&&x[i]<=rx&&ly<=y[i]&&y[i]<=ry){v[i]=0;continue;}
if(lx<=y[i]&&y[i]<=rx&&ly<=x[i]&&x[i]<=ry)v[i]=1,now+=w[i];else return;
}
if(now<ans)for(ans=now,i=0;i<n;i++)fin[i]=v[i];
}
int main(){
for(read(n);i<n;i++){
read(x[i]),read(y[i]),read(w[i]);
if(x[i]<=y[i])min(lx,x[i]),max(rx,x[i]),min(ly,y[i]),max(ry,y[i]);
else min(lx,y[i]),max(rx,y[i]),min(ly,x[i]),max(ry,x[i]);
}
printf("%lld ",2LL*(rx+ry-lx-ly));
cal(lx,rx,ly,ry),cal(ly,rx,lx,ry),cal(lx,ry,ly,rx),cal(ly,ry,lx,rx);
for(printf("%d\n",ans),i=0;i<n;i++)putchar(fin[i]?'1':'0');
return 0;
}

  

BZOJ1105 : [POI2007]石头花园SKA的更多相关文章

  1. BZOJ1105 [POI2007]石头花园SKA 贪心

    [POI2007]石头花园SKA Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 776  Solved: 237[Submit][Status][Di ...

  2. BZOJ 1105: [POI2007]石头花园SKA

    1105: [POI2007]石头花园SKA Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 628  Solved: 182[Submit][Stat ...

  3. [POI2007]石头花园SKA

    Description Blue Mary是一个有名的石头收藏家.迄今为止,他把他的藏品全部放在他的宫殿的地窖中.现在,他想将他的藏品陈列在他的花园中.皇家花园是一个边长为1000000000单位的平 ...

  4. 【BZOJ】1105: [POI2007]石头花园SKA

    题意 二维平面上有\(n(2 \le n \le 1000000)\)个点,可以花费\(w_i\)交换第\(i\)个点的横纵坐标.求在满足能覆盖所有点的最小矩阵周长最短的情况下花费最小. 分析 这题太 ...

  5. [bzoj1105]石头花园

    首先$C/2=x_{max}+y_{max}-x_{min}-y_{min}=max(x_{max},y_{max})-min(x_{min},y_{min})+min(x_{max},y_{max} ...

  6. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  7. poi2007

    序:为什么写poi,zy说poi都是思路题目,不像hnoi妈的数据结构队..... 1.bzoj1102 题目大意:定义了一个山谷和山峰,求他们数量. 题解:这种题bfs咯,在bfs的时候记录一下相邻 ...

  8. BZOJ 1103: [POI2007]大都市meg [DFS序 树状数组]

    1103: [POI2007]大都市meg Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2221  Solved: 1179[Submit][Sta ...

  9. Team Leader 你不再只是编码, 来炖一锅石头汤吧

    h3{ color: #000; padding: 5px; margin-bottom: 10px; font-weight: bolder; background-color: #ccc; } h ...

随机推荐

  1. 开机提示grub可咋办啊

    导读 GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统.GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数. 1 ...

  2. 变色龙安装程序 Chameleon Install 2.2 svn 2281发布

    变色龙安装程序 Chameleon Install 2.2 svn 2281发布 1.更好的支持10.9 Mavericks2.更新ATi.nVidia显卡支持列表3.添加新的 CPU Model I ...

  3. convert jar to java

    (文章是从我的个人主页上粘贴过来的,大家也可以访问我的主页 www.iwangzheng.com) 首先解压一下下载的jar文件,extract jar file , $jar -xvf file.j ...

  4. 解决港版A1530 ios8 联通4G 电话打不进无法接通的问题,联通4G开关开启方法

    GF的iPhone5s港版A1530联通4G老是出现无法接通的问题, 根本原因是没有4G开关.港行iPhone却只有3G开关.也就是说,当启动3G时,却搜到4G信号,但是关闭时却只能关闭3G和2G.让 ...

  5. 【VirtualBox】VirtualBox的桥接网络模式,为啥网络不稳定?

    网桥模式访问外网非常慢,经常卡死,ping时断时续 七搞八搞,反复重启了几次 TMD  就好了,也不知道什么情况,VirtualBox还是不太好使啊..... 网桥模式 设置 如下: 参考资料: ht ...

  6. 《转》.NET开源核心运行时,且行且珍惜

    转载自infoQ 背景 InfoQ中文站此前报道过,2014年11月12日,ASP.NET之父.微软云计算与企业级产品工程部执行副总裁Scott Guthrie,在Connect全球开发者在线会议上宣 ...

  7. Intersection of Two Arrays | & ||

    Intersection of Two Arrays Given two arrays, write a function to compute their intersection. Example ...

  8. Minimum Path Sum

    Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...

  9. MYSQL集群的搭建

    按照此配置完全可以配置成功!! 一.介绍========测试环境:Server1:ndbd 192.168.1.225Server2:ndbd 192.168.1.226Server3:mysqld ...

  10. 7.python模块补充

    此文章是对上节文章模块的补充 一,xml模块 xml是实现不同语言或程序之间进行数据交换的协议,可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言.xml的格式如下 ...