洛谷P2914:https://www.luogu.org/problemnew/show/P2914

这题目在暑假培训的时候考到
当时用Floyed会T掉
看楼下都是用Dijkstra
难道没有人用优雅的SPFA吗?

思路

用前向星构建整个图
注意每一条边都不能超过len(也就是题目中的m)
所以存图的时候注意一下这一点就行了
其他就跟SPFA一样套板子
代码中还有详细注解
注意坑点:数组开大一点 没开大的我RE了2次

代码

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int n,m,cnt;
double len;
int exist[500005];//判断是否在队中
int team[2000020];//队列
int head[500005];
double dis[500005];//从1到n的距离
int t=0,w=1;
struct ele
{double x;double y;
}ele[100005];//电线杆的坐标
struct edge
{int next;int to;double w;
}e[5000005];
void add(int u,int v,double w)
{e[++cnt].w=w;e[cnt].to=v;e[cnt].next=head[u];head[u]=cnt;
}//前向星图
double dist(int i,int j)
{double x1=ele[i].x;double y1=ele[i].y;double x2=ele[j].x;double y2=ele[j].y;double d=hypot(x1-x2,y1-y2);//判断电线杆之间的距离//据楼下的dalao说用sqrt会爆就没用//用了求直角三角形斜边长的函数<cmath> return d;
}
int main()
{cin>>n>>m>>len;for(int i=1;i<=n;i++)cin>>ele[i].x>>ele[i].y;for(int i=1;i<=n;i++)dis[i]=99999999;//初始化 for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++){if(dist(i,j)<=len)//如果没有超过len就可以加入边 {add(i,j,dist(i,j));add(j,i,dist(i,j));}}for(int i=1;i<=m;i++){int x,y;cin>>x>>y;add(x,y,0);add(y,x,0);//如果已经有电线就不用再花费距离 }dis[1]=0;//常规SPFA开始 team[1]=1;while(t<w){t++;int u=team[t];exist[u]=0;for(int i=head[u];i;i=e[i].next){int v=e[i].to;if(dis[v]>dis[u]+e[i].w){dis[v]=dis[u]+e[i].w;if(!exist[v]){w++;exist[v]=1;team[w]=v;}}}}if(dis[n]==99999999)//如果到不了 cout<<"-1";elsecout<<int(dis[n]*1000);//强制转换int类型
}

转载于:https://www.cnblogs.com/BrokenString/p/9296720.html

【题解】洛谷P2914[USACO08OCT]断电Power Failure相关推荐

  1. 题解 洛谷P1365 WJMZBMR打osu! / Easy

    题解 洛谷P1365 WJMZBMR打osu! / Easy Date 2019.7.28 题目大意 给出一个长度为n的由o,x,?组成的字符串,对于每连续的a个o,就有a2分.同时,对于任意的?,有 ...

  2. python刷题 NOI题库 python题解 洛谷、牛客网、AcWing 刷题等

    NOI题库 python题解-2022.01.07整理(1.1-1.3) NOI题库 python题解-2022.01.07整理(1.1-1.3)_dllglvzhenfeng的博客-CSDN博客 N ...

  3. 题解 洛谷P4473 【[国家集训队]飞飞侠】

    这道题今天我们考试考到了,第三题,最后只剩半小时了,随便打了个暴搜,最后竟然还没调完QAQ,我竟然连暴力都不会打了 咳咳,不扯了,下面开始说这道题的做法 由于N和M都不大于150最容易想到的是Floy ...

  4. 题解 洛谷 P4042 [AHOI2014/JSOI2014]骑士游戏

    洛谷P4042[AHOI2014/JSOI2014]骑士游戏\color{#00F}{洛谷\ P4042\ [AHOI2014/JSOI2014]骑士游戏}洛谷 P4042 [AHOI2014/JSO ...

  5. 题解 洛谷 P3069 [USACO13JAN]牛的阵容Cow Lineup

    洛谷P3069[USACO13JAN]牛的阵容CowLineup\color{#00F}{洛谷\ P3069\ [USACO13JAN]牛的阵容Cow Lineup}洛谷 P3069 [USACO13 ...

  6. 题解洛谷1179数字统计 记录问题

    文章目录 数字统计 一.思路1 二.思路二 优化 1.想法 2.代码 二.继续优化 不用类型转换 总结 数字统计 题目描述 请统计某个给定范围[L, R][L,R]的所有整数中,数字 22 出现的次数 ...

  7. 洛谷P1550 [USACO08OCT]打井Watering Hole

    P1550 [USACO08OCT]打井Watering Hole 题目背景 John的农场缺水了!!! 题目描述 Farmer John has decided to bring water to ...

  8. P1541 乌龟棋 题解(洛谷,动态规划递推)

    题目:P1541 乌龟棋 感谢大神的题解(他的写的特别好) 写一下我对他的代码的理解吧(哎,蒟蒻就这能这样...) 代码: #include<bits/stdc++.h> #define ...

  9. 题解——洛谷 P2680 NOIP提高组 2015 运输计划

    树上差分加上二分答案 详细题解待填坑 #include <cstdio> #include <algorithm> #include <cstring> using ...

  10. 伪题解 洛谷 P1363 幻想迷宫(DFS)

    毒瘤题,做了一晚上抄题解A了 因为是抄题解,我也不好意思说什么了,就发篇博客纪念一下吧 #include<iostream> #include<cstring> #includ ...

最新文章

  1. Codeforces 903F Clear The Matrix(状态压缩DP)
  2. RemoveError: ‘requests‘ is a dependency of conda and cannot be removed from
  3. 语音识别:时间序列的Smith–Waterman对齐算法
  4. matlab分类器函数
  5. css箭头超链接,css超链接
  6. 怎么确保一个集合不能被修改?
  7. 雪城大学信息安全讲义 七、格式化字符串漏洞
  8. 为什么现在越来越多的人不愿换新机?最后一个原因扎心了
  9. 阿里云部署java web
  10. Bailian2686 打印完数【暴力】
  11. 全功能短视频平台去水印解析页面源码
  12. IDEA快捷生成方法
  13. 数据结构--哈希(Hash)和代码实现(详解)
  14. Python 字符串
  15. Part Ⅴ Entertainment 娱乐活动??
  16. 【同步与补偿】频率偏移
  17. fail2ban原理与安装(centos6)
  18. 17 内存规整(memory compaction)
  19. 城市燃气价格体系及计量、计费
  20. 解决VScode无法step in 调试

热门文章

  1. 求职必看!大厂面试中遇到了发散性问题..... ,怎么办?
  2. 并查集详细讲解(转载) 模板
  3. 苹果mac效率软件:alfred 4
  4. 如何在 Mac 上打开和提取 RAR 文件?
  5. iOS开发计算工程里面的代码行数
  6. 如何在Mac设置开机自启程序项
  7. MacOS Catalina降级Mojave
  8. idea + debug
  9. swap分区自动建立配置
  10. Mysql基础系列(一)