图论的超级初级题目(模板题)

最短路径的模板题

图是啥?(白纸上的符号?)

对于一个拥有n个顶点的无向连通图,它的边数一定多于n-1条。若从中选择n-1条边,使得无向图仍然连通,则由n个顶点及这 n-1条边(弧)组成的图被称为原无向图的生成树。

换句话说,有边有点就是图。(本蒟蒻的理解是这样。。QWQ)

另外,还有一些与图有关的定义(很好理解,通俗一点):

阶:图中点的个数。

边:两个点间的连接

权值:边的长度

。。。想了解更多找度娘,她可能讲的比我通俗QWQ。

邻接矩阵:

进入正题:

题目背景

《爱与愁的故事第三弹·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: 复制

5
0 0
2 0
2 2
0 2
3 1
5
1 2
1 3
1 4
2 5
3 5
1 5
输出样例#1: 复制

3.41

说明

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

先预处理转化为邻接矩阵后再直接输出就可以了

具体算法为Floyd算法

上AC代码:

#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
using namespace std;
int n,m,a[][],e,g,aa,bb;//a用来存x,y坐标
double f[][];//f用来存路径的
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++)
cin>>a[i][]>>a[i][]; //scanf("%d%d",&a[i][0],&a[i][1]);
scanf("%d",&m);
memset(f,0x7f,sizeof(f));
for(int i=;i<=m;i++)
{
scanf("%d%d",&e,&g);//代替x,y ,因为cmath中有x,y了(真的很无语啊)
f[g][e]=sqrt(pow(double(a[e][]-a[g][]),)+pow(double(a[e][]-a[g][]),));
f[e][g]=sqrt(pow(double(a[e][]-a[g][]),)+pow(double(a[e][]-a[g][]),));
}
scanf("%d%d",&aa,&bb);
for(int k=;k<=n;k++)//开启O(n^3)暴力模式——
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
{
if((i!=j)&&(i!=k)&&(j!=k)&&(f[i][j]>(f[i][k]+f[k][j])))
f[i][j]=f[i][k]+f[k][j];
}
printf("%0.2lf",f[aa][bb]);//暴力过后松一口气,直接输出您想要的点就行了
return ;
}

完结✿ヽ(°▽°)ノ✿

希望对大家有所帮助

P1744 采购特价商品 题解(讲解图论)的更多相关文章

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

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

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

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

  3. P1744 采购特价商品

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

  4. luogu P1744 采购特价商品

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

  5. 洛谷 P1744 采购特价商品

    题目背景 <爱与愁的故事第三弹·shopping>第一章. 题目描述 中山路店山店海,成了购物狂爱与愁大神的“不归之路”.中山路上有n(n<=100)家店,每家店的坐标均在-1000 ...

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

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

  7. 洛谷P3502 [POI2010]CHO-Hamsters感想及题解(图论+字符串+矩阵加速$dp\&Floyd$)

    洛谷P3502 [POI2010]CHO-Hamsters感想及题解(图论+字符串+矩阵加速\(dp\&Floyd\)) 标签:题解 阅读体验:https://zybuluo.com/Junl ...

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

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

  9. Floyd-蒟蒻也能看懂的弗洛伊德算法(当然我是蒟蒻)

    今天来讲点图论的知识,来看看最短路径的一个求法(所有的求法我以后会写,也有可能咕咕咕) 你们都说图看着没意思不好看,那今天就来点情景             暑假,_GC准备去一些城市旅游.有些城市之 ...

随机推荐

  1. mtools-你可能没用过的mongodb神器

    前言 接触 mongodb 已经有一段时间了,从一开始的不了解,到现在已慢慢适应这个nosql领域的佼佼者,还是经历了不少波折. 在进行数据库选型的时候,许多人总是喜欢拿 mongodb和mysql. ...

  2. 【Axios】前端页面使用axios调用后台接口

    项目基本情况 前端项目是用vue.js做的,前端起的服务URL:http://localhost:8080/ 后端项目是用Node.js做的,后端起的服务URL:http://localhost:30 ...

  3. 痞子衡嵌入式:飞思卡尔i.MX RT系列MCU启动那些事(3)- Serial Downloader模式(sdphost/MfgTool)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的Serial Downloader模式. 在上一篇文章 Boot配置(BOOT Pin, eFUSE) ...

  4. .Net语言 APP开发平台——Smobiler学习日志:基于Access数据库的Demo

    说明:该demo是基于Access数据库进行客户信息的新增.查看.编辑 新增客户信息和客户列表 Demo下载:https://github.com/comsmobiler/demo-videos  中 ...

  5. 别的C#基础笔记

    1.方法名称             *  规范:每一个单词的首字母大写 2.方法的返回值 *  void:没有返回值.不能使用return来返回具体的值 ,但是可以使用return终止当前方法    ...

  6. 杭电ACM2014--青年歌手大奖赛_评委会打分

    青年歌手大奖赛_评委会打分 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  7. Oracle day04 DML_事务_序列_视图_数据类型_DDL

    DMLinsert关键字作用:往表中插入一条(多条)数据 语法1:元祖值式的插入语法1: insert into tablename(column1,column2,...,columnN) valu ...

  8. JAVA程序员面试30问(附带答案)

    第一,谈谈final, finally, finalize的区别. 最常被问到.final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能 ...

  9. JavaWeb - 模仿SpringMVC抽取 BaseServlet + 封装表单参数

    模仿SpringMVC抽取一个BaseServlet,接收所有请求,然后自动封装表单参数和分发到对应的servlet执行,下面用一个页面表单提交,转发显示的项目做示例. 1)首先准备一个Entity, ...

  10. 浏览器与Node的事件循环(Event Loop)有何区别?

    前言 本文我们将会介绍 JS 实现异步的原理,并且了解了在浏览器和 Node 中 Event Loop 其实是不相同的. 一.线程与进程 1. 概念 我们经常说 JS 是单线程执行的,指的是一个进程里 ...