【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.当英雄意识到自己还是等 ...
随机推荐
- Hibernate基础学习2
Hibernate基础学习2 测试hibernate的一级缓存,事务以及查询语句 1)Hibernate的一些相关概念 hibernate的一级缓存 1)缓存是为了提高该框架对数据库的查询速度 2)一 ...
- 【Ecshop】商品数据采集扩展
一个自用的Ecshop商品数据采集程序 ->到此下载
- ethereum(以太坊)(十三)--异常处理/元祖
pragma solidity ^0.4.4; contract Students{ uint[] data= new uint[](4); address _owner = msg.sender; ...
- dts--framework(一)
dts 大体框架 framework 定义类 定义方法 tests framework调用所需要的函数 ./dpdk/usertools/cpu_layout.py /sys/devices/syst ...
- tcl之过程/函数-proc
- datetime模块及time模块
pyhton的datetime模块分析(小女子的测试之路):https://www.cnblogs.com/cindy-cindy/p/6720196.html python时间模块小结(time a ...
- POJ3246
Description For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same ...
- python 函数function
函数 当代码出现有规律的重复的时候,只写一次函数实现多次使用(调用) 可使用的函数: 自定义函数 内置函数:文档 https://docs.python.org/3/library/function ...
- scala Actor -03
1.对于上一篇讲解的scala的一些补充 val files = Array[String]("a.txt","b.txt","c.txt" ...
- NPM安装vue-cli,并创建vue+webpack项目模板
1.安装npm npm 是node.js 的包管理工具, 安装流程地址:https://docs.npmjs.com/cli/install 估计会非常慢,我们可以使用淘宝NPM镜像下载安装:htt ...