题目背景

《爱与愁的故事第三弹·shopping》第一章。

题目描述

中山路店山店海,成了购物狂爱与愁大神的“不归之路”。中山路上有n(n<=100)家店,每家店的坐标均在-10000~10000之间。其中的m家店之间有通路。若有通路,则表示可以从一家店走到另一家店,通路的距离为两点间的直线距离。现在爱与愁大神要找出从一家店到另一家店之间的最短距离。你能帮爱与愁大神算出吗?

输入输出格式

输入格式:

共n+m+3行:

第1行:整数n

第2行~第n+1行:每行两个整数x和y,描述了一家店的坐标

第n+2行:整数m

第n+3行~第n+m+2行:每行描述一条通路,由两个整数i和j组成,表示第i家店和第j家店之间有通路。

第n+m+3行:两个整数s和t,分别表示原点和目标店

输出格式:

仅一行:一个实数(保留两位小数),表示从s到t的最短路径长度。

输入输出样例

输入样例#1:

  1. 5
  2. 0 0
  3. 2 0
  4. 2 2
  5. 0 2
  6. 3 1
  7. 5
  8. 1 2
  9. 1 3
  10. 1 4
  11. 2 5
  12. 3 5
  13. 1 5
输出样例#1:

  1. 3.41

说明

100%数据:n<=100,m<=1000

spfa模板题

屠龙宝刀点击就送

  1. #include <cstdio>
  2. #include <cmath>
  3. #include <queue>
  4.  
  5. using namespace std;
  6. struct node
  7. {
  8. int next,to;
  9. double dis;
  10. }edge[];
  11. bool vis[];
  12. double dis[];
  13. int tot,i,j,n,m,x[],y[],head[];
  14. inline void add_edge(int u,int v,double farr)
  15. {
  16. edge[++tot].next=head[u];
  17. edge[tot].to=v;
  18. edge[tot].dis=farr;
  19. head[u]=tot;
  20. }
  21. void spfa(int start)
  22. {
  23. queue<int>q;
  24. for(i=;i<=n;++i)
  25. {
  26. dis[i]=1e9;
  27. vis[i]=;
  28. }
  29. dis[start]=;
  30. vis[start]=;
  31. q.push(start);
  32. while(!q.empty())
  33. {
  34. int tope=q.front();
  35. q.pop();
  36. vis[tope]=;
  37. for(i=head[tope];i;i=edge[i].next)
  38. {
  39. int to=edge[i].to;
  40. if(dis[to]>dis[tope]+edge[i].dis)
  41. {
  42. dis[to]=dis[tope]+edge[i].dis;
  43. if(!vis[to])
  44. {
  45. q.push(to);
  46. vis[to]=;
  47. }
  48. }
  49. }
  50. }
  51. }
  52. int main()
  53. {
  54. scanf("%d",&n);
  55. for(i=;i<=n;++i)
  56. scanf("%d%d",&x[i],&y[i]);
  57. int from,to;
  58. scanf("%d",&m);
  59. while(m--)
  60. {
  61. scanf("%d%d",&from,&to);
  62. add_edge(from,to,sqrt((x[from]-x[to])*(x[from]-x[to])+(y[from]-y[to])*(y[from]-y[to])));
  63. add_edge(to,from,sqrt((x[from]-x[to])*(x[from]-x[to])+(y[from]-y[to])*(y[from]-y[to])));
  64. }
  65. int s,t;
  66. scanf("%d%d",&s,&t);
  67. spfa(s);
  68. printf("%.2lf",dis[t]);
  69. return ;
  70. }

洛谷 P1744 采购特价商品的更多相关文章

  1. 洛谷——P1744 采购特价商品

    P1744 采购特价商品 题目背景 <爱与愁的故事第三弹·shopping>第一章. 题目描述 中山路店山店海,成了购物狂爱与愁大神的“不归之路”.中山路上有n(n<=100)家店, ...

  2. P1744 采购特价商品 最短路径

    P1744 采购特价商品 图论-----最短路径算法 弗洛伊德算法  O(n^3) 代码: #include<iostream> #include<cstdio> #inclu ...

  3. 图论++【洛谷p1744】特价采购商品&&【一本通1342】最短路径问题

    (虽然题面不是很一样,但是其实是一个题qwq) [传送门] 算法标签: 利用Floyed的o(n3)算法: (讲白了就是暴算qwq) 从任意一条单边路径开始.所有两点之间的距离是边的权,或者无穷大,如 ...

  4. P1744 采购特价商品

    原题链接 https://www.luogu.org/problemnew/show/P1744 一道最短路的模板题.....很简单吧 求最短路的方法有很多,但是对于刚学完Floyd的我,只会用这个. ...

  5. P1744 采购特价商品 题解(讲解图论)

    图论的超级初级题目(模板题) 最短路径的模板题 图是啥?(白纸上的符号?) 对于一个拥有n个顶点的无向连通图,它的边数一定多于n-1条.若从中选择n-1条边,使得无向图仍然连通,则由n个顶点及这 n- ...

  6. luogu P1744 采购特价商品

    实话说我本来想找SPFA的题,结果我硬生生的把这道题做成了Floyd 先来看题,我们会发现如果把他所给的变量都输入,那么会发现用Floyd的解法,输入占了main函数的一半长度... 题目分为两步走: ...

  7. 洛谷题解 P1744 【采购特价商品】

    原题传送门 题目描述 中山路店山店海,成了购物狂爱与愁大神的"不归之路".中山路上有n(n<=100)家店,每家店的坐标均在-10000~10000之间.其中的m家店之间有通 ...

  8. [NOI 2020 Online] 入门组T1 文具采购(洛谷 P6188)题解

    原题传送门 题目部分:(来自于考试题面,经整理) [题目描述] 小明的班上共有 n 元班费,同学们准备使用班费集体购买 3 种物品: 1.圆规,每个 7 元. 2.笔,每支 4 元. 3.笔记本,每本 ...

  9. 【洛谷】P4585 [FJOI2015]火星商店问题

    题解 题目太丧,OJ太没有良心,我永远喜欢LOJ! (TLE报成RE,垃圾洛谷,我永远喜欢LOJ) 好的,平复一下我debug了一上午崩溃的心态= =,写一写这道题的题解 把所有限制去掉,给出一个值, ...

随机推荐

  1. springmvc源码分析系列-请求处理流程

    接上一篇-springmvc源码分析开头片 上一节主要说了一下springmvc与struts2的作为MVC中的C(controller)控制层的一些区别及两者在作为控制层方面的一些优缺点.今天就结合 ...

  2. Levko and Array

    题意: 有一长度为n的正整数序列,你可以选择K个数字任意改变它,使得$max \{ a(i+1) - a(i) \} $ 最小,求最小值. 解法: 1.$O(n^2log(MAX_A) )$,考虑二分 ...

  3. 2.8-2.10 HBase集成MapReduce

    一.HBase集成MapReduce 1.查看HBase集成MapReduce需要的jar包 [root@hadoop-senior hbase-0.98.6-hadoop2]# bin/hbase ...

  4. 1.1-1.5 flume架构概述及安装使用

    一.flume架构概述 1.flume简介 Flume是一种分布式,可靠且可用的服务,用于有效地收集,聚合和移动大量日志数据.它具有基于流数据流的简单灵活的架构.它具有可靠的可靠性机制和许多故障转移和 ...

  5. 3、webpack打包出的文件解析

    分析打包后的结果,看看打包后的结果是什么东西 把打包后的结果.注释什么的删删‘’ 当前是一个匿名函数. 默认的时候会执行,执行的时候会传一个对象,对象有几部分,第一部分是我们的key.第二部分是我们的 ...

  6. E20181121-hm

    invoke vt. 乞灵,祈求; 提出或授引…以支持或证明; 召鬼; 借助

  7. SCUTOJ - 362 - CC的族谱 - 树上倍增

    https://scut.online/p/362 和LCA差不多,注意开大点不怕浪费. #include<bits/stdc++.h> using namespace std; type ...

  8. Solve Tree Problems Recursively

    "Top-down" Solution Here is the pseudocode for the recursion function maximum_depth(root, ...

  9. POJ3191【(-2)进制本质】

    题意: 实现10进制数转换成-2进制数 思路: 有点意思,先扯些题外话,一个我们经常做的二进制:利用二进制有好多优化,大多都是利用了二进制能够表示一个数,然后优化了空间或者时间. 所以问题很清楚啊,就 ...

  10. Vue.js实战

    指令 什么是指令 指令,directives,是vue非常常用的功能,在template里. 都是以v-开头 不是自己所为html元素,比如假设指令叫v-abc,没有这种写法,这是组件(compone ...