题意

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

分析

这题太神了。有一个结论是,所有点都会交换到\(y=x\)线的同一侧。

题解

所以我们暴力就行辣。

#include <bits/stdc++.h>
using namespace std;
inline int getint() {
int x=0, c=getchar();
for(; c<48||c>57; c=getchar());
for(; c>47&&c<58; x=x*10+c-48, c=getchar());
return x;
}
const int N=1000005;
bool ok[N], vi[N];
int n, x[N], y[N], w[N], ans=~0u>>1;
void go(int lx, int rx, int ly, int ry) {
int temp=0;
for(int i=1; i<=n; ++i) {
if(lx<=x[i] && x[i]<=rx && ly<=y[i] && y[i]<=ry) {
vi[i]=0;
}
else if(lx<=y[i] && y[i]<=rx && ly<=x[i] && x[i]<=ry) {
vi[i]=1;
temp+=w[i];
}
else {
return;
}
}
if(temp<ans) {
ans=temp;
memcpy(ok, vi, sizeof(bool)*(n+1));
}
}
int main() {
n=getint();
int lx=~0u>>1, ly=lx, rx=-lx, ry=rx;
for(int i=1; i<=n; ++i) {
x[i]=getint(), y[i]=getint(), w[i]=getint();
int a=min(x[i], y[i]), b=max(x[i], y[i]);
lx=min(lx, a);
rx=max(rx, a);
ly=min(ly, b);
ry=max(ry, b);
}
printf("%lld ", 2ll*(rx-lx+ry-ly));
go(lx, rx, ly, ry);
go(lx, ry, ly, rx);
go(ly, rx, lx, ry);
go(ly, ry, lx, rx);
printf("%d\n", ans);
for(int i=1; i<=n; ++i) {
putchar('0'+ok[i]);
}
return 0;
}

【BZOJ】1105: [POI2007]石头花园SKA的更多相关文章

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

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

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

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

  3. [POI2007]石头花园SKA

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

  4. BZOJ1105 : [POI2007]石头花园SKA

    考虑把所有石头翻到直线y=x同侧,此时可以保证篱笆长度最短. 这种最短的篱笆一共有4种可能,枚举每种可能然后$O(n)$检验求出答案即可. #include<cstdio> const i ...

  5. 树状数组 - BZOJ 1103 [POI2007]大都市

    bzoj 1103 [POI2007]大都市 描述 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员 Blue Mary也开始骑着摩托车传递邮件了.不过,她经常回忆起以前在乡间漫步的情景. ...

  6. 并查集 - BZOJ 1104 [POI2007]洪水

    BZOJ 1104 [POI2007]洪水 描述 AKD 市处在一个四面环山的谷地里.最近一场大暴雨引发了洪水,AKD 市全被水淹没了.Blue Mary,AKD 市的市长,召集了他的所有顾问(包括你 ...

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

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

  8. BZOJ 1101: [POI2007]Zap

    1101: [POI2007]Zap Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2262  Solved: 895[Submit][Status] ...

  9. BZOJ 1100: [POI2007]对称轴osi

    1100: [POI2007]对称轴osi Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 630  Solved: 243[Submit][Statu ...

随机推荐

  1. OCJP(1Z0-851) 模拟题分析(九)over

    Exam : 1Z0-851 Java Standard Edition 6 Programmer Certified Professional Exam 以下分析全都是我自己分析或者参考网上的,定有 ...

  2. 构造方法 static 块 {}块 执行顺序

    package com.test.innerclass; public class HelloB extends HelloA { public HelloB() { System.out.print ...

  3. [JAVA] IOException: Invalid byte 2 of 2-byte UTF-8 sequence(解决办法)

    日志打印不全,后台只打印出出标题的异常信息: 先前的日志打印信息:log.debug(e.getMessage()); 后面改成了日志打印信息:log.debug(e); log.debug(e.ge ...

  4. linux的<pthread.h>

    转自:http://blog.sina.com.cn/s/blog_66cc44d00100in5b.html Linux系统下的多线程遵循POSIX线程接口,称为pthread.编写Linux下的多 ...

  5. url地址中 "&" "/"等符号的转义处理(转)

    URL出现了有+,空格,/,?,%,#,&,=等特殊符号的时候,可能在服务器端无法获得正确的参数值,如何是好? 解决办法:将这些字符转化成服务器可以识别的字符,对应关系如下: URL中的特殊字 ...

  6. wpf textblock 会覆盖 button里面字体样式的解决方法 还有button的style覆盖。。datepicker里面的按钮的style

    .(button使用contont写的时候) 当.button使用 <button.content><textBlock/></button.content>依然会 ...

  7. ios 区域检测 使用coreLocation

    #import "ViewController.h" #import <CoreLocation/CoreLocation.h> @interface ViewCont ...

  8. springMVC核心配置文件样例

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  9. Servlet3.0新特性

    1 Servlet3.0新特性概述 使用要求:MyEclipse10.0或以上版本,发布到Tomcat7.0或以上版本,创建JavaEE6.0应用! Servlete3.0的主要新特性如下三部分: 使 ...

  10. BZOJ 2631 Tree ——Link-Cut Tree

    [题目分析] 又一道LCT的题目,LCT只能维护链上的信息. [代码] #include <cstdio> #include <cstring> #include <cs ...