【BZOJ】1105: [POI2007]石头花园SKA
题意
二维平面上有\(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相关推荐
- BZOJ.1109.[POI2007]堆积木Klo(DP LIS)
BZOJ 二维\(DP\)显然.尝试换成一维,令\(f[i]\)表示,强制把\(i\)放到\(a_i\)位置去,现在能匹配的最多数目. 那么\(f[i]=\max\{f[j]\}+1\),其中\(j& ...
- [BZOJ 1098] [POI2007] 办公楼biu 【链表优化BFS】
题目链接:BZOJ - 1098 题目分析 只有两个点之间有边的时候它们才能在不同的楼内,那么就是说如果两个点之间没有边它们就一定在同一座楼内. 那么要求的就是求原图的补图的连通块. 然而原图的补图的 ...
- BZOJ 1101: [POI2007]Zap
题目 1101: [POI2007]Zap Time Limit: 10 Sec Memory Limit: 162 MB Description FGD正在破解一段密码,他需要回答很多类似的问题: ...
- BZOJ 1101: [POI2007]Zap( 莫比乌斯反演 )
求 answer = ∑ [gcd(x, y) = d] (1 <= x <= a, 1 <= y <= b) . 令a' = a / d, b' = b / d, 化简一下得 ...
- BZOJ 1108: [POI2007]天然气管道Gaz
1108: [POI2007]天然气管道Gaz Description Mary试图控制成都的天然气市场.专家已经标示出了最好的天然气井和中转站在成都的地图.现在需要将中转 站和天然气井连接起来.每个 ...
- BZOJ 1103: [POI2007]大都市meg [DFS序 树状数组]
1103: [POI2007]大都市meg Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2221 Solved: 1179 [Submit][S ...
- bzoj 1109: [POI2007]堆积木Klo(二维偏序)
1109: [POI2007]堆积木Klo Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1139 Solved: 423 [Submit][St ...
- 莫比乌斯函数(bzoj 1101: [POI2007]Zap)
莫比乌斯反演: http://blog.csdn.net/acdreamers/article/details/8542292 课件:https://wenku.baidu.com/view/fbec ...
- bzoj 1106: [POI2007]立方体大作战tet(贪心+树状数组)
1106: [POI2007]立方体大作战tet Time Limit: 10 Sec Memory Limit: 162 MB Submit: 785 Solved: 574 [Submit][ ...
最新文章
- 公司间STO的Invoice处理
- 快速打开unity manual的方式
- 弗吉尼亚理工大学(Virginia Tech)NCR校区招收计算机硕士学位研究生
- 为什么函数式语言会火
- skipping incompatible
- zepto中的tap穿透
- Bootstrap3 带提示的进度条
- ajax跨域原理以及jsonp使用
- VMWARE:NAT模式连接外网
- bzero和memset函数
- 安装谷歌json格式转换插件
- idea破解版下载 + 最常用快捷键记录
- STM32利用DCMI对并口ADC高速数据采样
- 这40个自学网站,一年让你“白捡”十几万,快点收藏
- ijkplayer视频秒开优化指北
- 嵌入式OTA升级实现原理
- 如何使用MDK建立STM32H7双核编译工程
- 第三方支付躺赚的好日子结束:银行直连模式瓦解
- javacv开发详解之19:如何使用批量的多张图片制作apng动态图,再也不用担心不会制作动态图了
- 新手如何做网站?成都网站建设达人浅析——网站制作新手教程