【Luogu】P2498拯救小云公主(spfa)
我水爆了- -
容易发现可以把两个圆之间连边,左上为起点右下为终点,最小生成树直到起点跟终点连起来,输出边权/2就行。
然后80.
并不理解为什么这可以转化成spfa求最短路,邻接矩阵暴力跑一下就AC了。
#include<cstdio>
#include<algorithm>
#include<cctype>
#include<cstring>
#include<cstdlib>
#include<queue>
#include<cmath>
#define maxn 3030
using namespace std;
inline long long read(){
long long num=,f=;
char ch=getchar();
while(!isdigit(ch)){
if(ch=='-') f=-;
ch=getchar();
}
while(isdigit(ch)){
num=num*+ch-'';
ch=getchar();
}
return num*f;
} struct Node{ double x,y; };
inline double calc(Node a,Node b){ return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)); }
Node q[maxn]; struct Edge{
int from,to;
double val;
bool operator <(const Edge a)const{
return val<a.val;
}
}d[maxn*maxn];
int cnt; double dis[maxn];
bool vis[maxn]; double mp[maxn][maxn]; int main(){
int e=read(),n=read(),m=read();
int up=e+,down=e+,left=e+,right=e+;
for(int i=;i<=right;++i)
for(int j=;j<=right;++j) mp[i][j]=0x7ffffffff;
for(int i=;i<=e;++i) q[i]=(Node){read(),read()};
for(int i=;i<=e;++i){
for(register int j=i+;j<=e;++j) mp[i][j]=mp[j][i]=calc(q[i],q[j]);
mp[up][i]=(n-q[i].x)*;
mp[i][down]=(q[i].x-)*;
mp[left][i]=(q[i].y-)*;
mp[i][right]=(m-q[i].y)*;
}
queue<int>f; f.push(up); f.push(left);
for(int i=;i<=right;++i) dis[i]=0x7ffffffff;
dis[up]=dis[left]=;
while(!f.empty()){
int from=f.front();f.pop(); vis[from]=;
for(int to=;to<=right;++to){
if(max(mp[from][to],dis[from])<dis[to]){
dis[to]=max(mp[from][to],dis[from]);
if(vis[to]) continue;
vis[to]=; f.push(to);
}
}
}
printf("%.2lf\n",min(dis[down],dis[right])/2.0);
return ;
}
【Luogu】P2498拯救小云公主(spfa)的更多相关文章
- 洛谷 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的洞穴门口,他一下子就懵了 ...
- P2498 [SDOI2012]拯救小云公主
\(\color{#0066ff}{ 题目描述 }\) 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只bos ...
- 洛谷P2498 [SDOI2012]拯救小云公主 【二分 + 并查集】
题目 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是上千只boss.当英雄意识到自己还是等级1 ...
- bzoj3007: 拯救小云公主
Description 英雄又即将踏上拯救公主的道路…… 这次的拯救目标是——爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是 ...
- 二分+并查集【bzoj3007】[SDOI2012]拯救小云公主
Description 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是上千只boss.当英雄意 ...
- 【bzoj3007】拯救小云公主 二分+对偶图+并查集
题目描述 英雄又即将踏上拯救公主的道路…… 这次的拯救目标是——爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只boss,而是上千只boss.当英雄意识到自己还是等 ...
随机推荐
- Java分享笔记:泛型机制的程序演示
package packA; import java.util.*; public class GenericDemo { public static void main(String[] args) ...
- js点击获取标签里面id属性
<html xmlns="http://www.w3.org/1999/xhtml"> <head > <title></title> ...
- 基于WSAAsyncSelect模型的两台计算机之间的通信
任务目标 编写Win32程序模拟实现基于WSAAsyncSelect模型的两台计算机之间的通信,要求编程实现服务器端与客户端之间双向数据传递.客户端向服务器端发送"请输出从1到1000内所有 ...
- Linux系统崩溃,数据迁移
就在1小时前,处理了件如标题所述的麻烦事儿.吃完午饭,想对此作个总结,一来自己梳理下过程以便后面遇见类似的事可以 快速处理,二来同行的小伙伴们可以探讨下.故事是这样的,公司所在园区物业晚上断电8小时, ...
- php扩展开发-资源类型
资源类型在内核中的结构 //zend_list.h typedef struct _zend_rsrc_list_entry { void *ptr; int type; int refcount; ...
- Numpy 索引及切片
1.一维数组的索引及切片 ar = np.arange(20) print(ar) print(ar[4]) print(ar[3:6]) print(ar[:4:2]) #索引到4 按2的步长 pr ...
- 边缘检测 opencv
本次实验使用了两种方法进行了边缘检测,分别使用到了opencv中的两个API函数为Canny()和Sobel()函数.实验后加了Scharr滤波器,它其实是基于Sobel()函数的. 这三个API中的 ...
- HyperLedger Fabric 1.4 比特币历史(1.1)
比特币是一种数字货币,也是一种创新思维,把人们带入到一个无中心化.完全可信任.安全可靠的全新思维领域:一个叫“中本聪”的人或组织,使我们思维产生化学反应,他在2008年10月31日发表了比特币白皮书& ...
- Aizu:0005-GCD and LCM
GCD and LCM Time limit 1000 ms Memory limit 131072 kB Problem Description Write a program which comp ...
- Ubuntu 14.10 配置JDK + J2EE
本文仅作为本人在Ubuntu 14.10下安装JDK + J2EE的一个记录: 安装JDK 从Oracle的官网下载jdk-7u75-linux-x64.tar.gz 将jdk-7u75-linux- ...