SDOI2012 Round1 day2 拯救小云公主(dis)解题报告






#include<cstdio>
#include<cmath>
#include<iostream>
using namespace std;
typedef long long ll;
typedef double real; #define setfire(name) freopen(#name".in","r",stdin);freopen(#name".out","w",stdout);
#define fre(name) freopen(#name".txt","r",stdin);
#define debug(x) cout<<#x<<" "<<x<<'\n';
#ifdef WIN32
#define LL "%I64d"
#else
#define LL "%lld"
#endif const int N=;
const real inf=1e14;
struct M{int x,y;}a[N];
int n,row,line,S,T,q[N*];bool vis[N*];
real ans,g[N][N],dis[N];
double get_dis(M a,M b){
int tx=a.x-b.x,ty=a.y-b.y;
return sqrt(tx*tx+ty*ty);
}
void init(){
scanf("%d%d%d",&n,&row,&line);S=n+;T=S+;
for(int i=,x,y;i<=n;i++) scanf("%d%d",&a[i].x,&a[i].y);
}
void mapping(){
for(int i=;i<=n;i++)
// g[S][i]=g[i][S]=min(a[i].x-1,row-a[i].x),//居然还90
// g[T][i]=g[i][T]=min(a[i].y-1,line-a[i].y);
g[S][i]=g[i][S]=min(a[i].x-,line-a[i].y),
g[T][i]=g[i][T]=min(a[i].y-,row-a[i].x);
for(int i=;i<=n;i++)
for(int j=i;j<=n;j++)
g[i][j]=g[j][i]=get_dis(a[i],a[j])/2.0;
ans=inf;
for(int i=;i<=n;i++)
ans=min(ans,get_dis(a[i],(M){,})),
ans=min(ans,get_dis(a[i],(M){row,line}));
g[S][T]=g[T][S]=min(row-,line-);
}
void spfa(){
for(int i=;i<=T;i++) vis[i]=,dis[i]=inf;
unsigned short h=,t=;real dl;
q[t]=S;dis[S]=;
while(h!=t){
int x=q[++h];vis[x]=;//少打个标记90变30
for(int i=;i<=T;i++){
if(x!=i&&(dl=max(dis[x],g[x][i]))<dis[i]){
dis[i]=dl;
if(!vis[i]){
vis[i]=;
q[++t]=i;
}
}
}
}
}
int main(){
setfire(dis);
init();
mapping();
spfa();
ans=min(ans,dis[T]);
printf("%.2lf",ans);
return ;
}
SDOI2012 Round1 day2 拯救小云公主(dis)解题报告的更多相关文章
- 洛谷 P2498 [SDOI2012]拯救小云公主 解题报告
P2498 [SDOI2012]拯救小云公主 题目描述 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到\(boss\)的洞穴门口,他一下子就懵了,因为面前不只是一 ...
- 【BZOJ】【3007】拯救小云公主
思路题 我的naive的做法是二分答案+判定是否有路径可走……但是没有正确理解[走的方向任意]这句话…… 其实就是说想咋走咋走= =360°无死角乱走…… 所以其实是个平面上的问题…… 我们可以换个方 ...
- BZOJ:4219: 跑得比谁都快 3007: 拯救小云公主
4219: 跑得比谁都快 3007: 拯救小云公主 三角剖分的解释可以看这里:http://www.cnblogs.com/Enceladus/p/6706444.html 后一道是前一道的弱化版. ...
- 【BZOJ3007】拯救小云公主 二分+几何+对偶图
[BZOJ3007]拯救小云公主 Description 英雄又即将踏上拯救公主的道路…… 这次的拯救目标是——爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了 ...
- 二分+并查集【bzoj3007】[SDOI2012]拯救小云公主
Description 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是上千只boss.当英雄意 ...
- 洛谷P2498 [SDOI2012]拯救小云公主 【二分 + 并查集】
题目 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是上千只boss.当英雄意识到自己还是等级1 ...
- P2498 [SDOI2012]拯救小云公主
\(\color{#0066ff}{ 题目描述 }\) 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只bos ...
- bzoj3007: 拯救小云公主
Description 英雄又即将踏上拯救公主的道路…… 这次的拯救目标是——爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是 ...
- 【bzoj3007】拯救小云公主 二分+对偶图+并查集
题目描述 英雄又即将踏上拯救公主的道路…… 这次的拯救目标是——爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是上千只boss.当英雄意识到自己还是等 ...
随机推荐
- Android应用程序窗体设计框架介绍
在Android系统中,一个Activity相应一个应用程序窗体.不论什么一个Activity的启动都是由AMS服务和应用程序进程相互配合来完毕的.AMS服务统一调度系统中全部进程的Activity启 ...
- python 常用的模块(struct)转
准确地讲,Python没有专门处理字节的数据类型.但由于str既是字符串,又可以表示字节,所以,字节数组=str.而在C语言中,我们可以很方便地用struct.union来处理字节,以及字节和int, ...
- 关于并发,异步,非阻塞(python)疑惑的一些资料解答
从iterable/iterator到generator到coroutine理解python的迭代器: http://python.jobbole.com/81916/理解python的生成器: ht ...
- 转:myeclipse和eclipse的区别和联系,以及版本间的对应关系
myeclipse和eclipse的区别和联系,以及版本间的对应关系 Eclipse:IBM花了4千万美金来开发这个IDE(Integrated Development Environment).第一 ...
- 块设备驱动之NOR FLASH驱动
转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/25240947 一.硬件原理 从原理图中我们能看到NOR FLASH有地址线,有 ...
- 国内外DNS服务器地址列表大全
DNS(Domain Name System)是域名解析服务器的意思,它在互联网的作用是把域名转换成为网络可以识别的IP地址. 通常来说,香港.韩国.日本等国的DNS服务器速度会比较快,大家可以多用几 ...
- Codeforces 463C Gargari and Bishops 题解
题目出处: http://codeforces.com/contest/463/problem/C 感觉本题还是挺难的.须要好好总结一下. 计算对角线的公式: 1 右斜对角线,也叫主对角线的下标计算公 ...
- STL学习笔记(迭代器相关辅助函数)
advance()可令迭代器前进 #include <iterator> void advance(InputIterator& pos,Dist n); 面对Random Acc ...
- rabbitmq 用户和授权
官方文档 https://my.oschina.net/hncscwc/blog/262246?p=
- TCP应用程序通信协议的处理
TCP应用程序通信协议的处理 flyfish 2015-6-29 一 流式处理 TCP是一种流协议(stream protocol).TCP数据是以字节流的形式传递给接收者的,没有固有的"报 ...