题解 浣花溪公园【图论基本算法及应用】
题目描述
成都浣花溪公园是一座有着诗歌文化气息的公园,它以杜甫草堂的历史文化内涵为背景,运用现代园林和建筑设计的前沿理论,以自然雅致的景观和建筑凸现川西文化醇厚的历史底蕴,是一座集将自然景观和城市景观、古典园林和现代建筑艺术有机结合的城市公园。
周末,Mr.Zeng和他儿子在浣花溪公园“诗歌大道”上欣赏诗歌,刚诗兴正浓,Mr.Zeng忽然想起汽车的车门没锁,于是他们要在最快的时间内走出公园赶到公园门口停车场。我们把公园的景点用数字标号(从 1 1 1 到 N − 1 N-1 N−1),在两个景点中之间会有道路连接,并且 Mr.Zeng 和他儿子都是素质很高的人,他们不会穿越公园的草坪,只会沿着公园的小路行走。 Mr.Zeng 想知道从他们当前所处的位置 S S S 到公园的出口(标号固定为 N N N)所需要的最短时间。你能帮帮他吗?
输入输出格式
输入格式:
输入文件的第一行有3 个正整数: N N N、 K K K、 T T T 并且用空格隔开,分别表示公园景点数目、公园小路条数,以及他们当前所处的景点编号。
接下来 K K K 行,每行三个整数,表示小路连接的两个景点的编号以及走过这条小路所需要的时间。
输出格式:
输出一个整数,表示他们走出公园所需要的最短时间。
输入输出样例
输入样例#1: 复制
3 2 1
1 2 3
2 3 4
输出样例#1: 复制
7
说明
【数据范围】
对于 60 60 60% 的数据,保证 N < = 1000 N<=1000 N<=1000, K < = 10000 K<=10000 K<=10000。
对于 100 100 100% 的数据,保证 N < = 10000 N<=10000 N<=10000, K < = 100000 K<=100000 K<=100000。
对于 100 100 100% 的数据,保证结果在 2 31 2^{31} 231 内。
题解
1.算法说明
迪杰斯特拉算法(Dijstra)+堆优化求最短路,时间复杂度: O ( N ∗ l o g 2 N ) O(N*log_2N) O(N∗log2N),是求单源最短路最快的方法。
我才不会告诉你教我计算机的老师就是曾老师呢。。。
2.Code
第一种:
#include<bits/stdc++.h>
using namespace std;int first[10001],f[10001];
int next[200001],v[200001],c[200001];
int p[200000];
int n,k,t,size;
bool exist[10001];void inser(int x,int y,int w)
{size++;next[size]=first[x];first[x]=size;v[size]=y;c[size]=w;
}void init()
{int i,x,y,w;memset(first,0,sizeof(first));scanf("%d%d%d",&n,&k,&t);size=0;for(i=1;i<=k;i++){scanf("%d%d%d",&x,&y,&w);inser(x,y,w);inser(y,x,w);}
}int main()
{init();int i,j,head,tail,u;memset(exist,false,sizeof(exist));fill(f+1,f+n+1,1000000000);f[t]=0;p[1]=t;exist[t]=true;head=0;tail=1;while(head<tail){head++;exist[p[head]]=false;u=first[p[head]];while(u!=0){if(f[p[head]]+c[u]<f[v[u]]){f[v[u]]=f[p[head]]+c[u];if(exist[v[u]]==false){tail++;p[tail]=v[u];exist[v[u]]=true;}}u=next[u];}}printf("%d\n",f[n]);return 0;
}
第二种
正在输入
题解 浣花溪公园【图论基本算法及应用】相关推荐
- [复习]Dijkstra+堆/SPFA/Dijkstra+优先队列 浣花溪公园
题目背景 最短路模板题目.SPFA 或 用堆优化的迪杰斯特拉算法均可实现. 题目描述 成都浣花溪公园是一座有着诗歌文化气息的公园,它以杜甫草堂的历史文化内涵为背景,运用现代园林和建筑设计的前沿理论,以 ...
- 浣花溪公园(最短路径模板)
题目: 成都浣花溪公园是一座有着诗歌文化气息的公园,它以杜甫草堂的历史文化内涵为背景,运用现代园林和建筑设计的前沿理论,以自然雅致的景观和建筑凸现川西文化醇厚的历史底蕴,是一座集将自然景观和城市景观. ...
- 图论2-SAT算法详解
图论2-SAT算法详解 今天我们来介绍一个我个人认为最难的算法,这是为什么呢?肯定会有许多dalao说,不就一个2-SAT,我两分钟就A掉了.然而2-SAT的细节非常的多,稍不注意就会写错,而且测试困 ...
- 图论相关算法理解和总结
晚上学习了一些图论相关算法: 单源最短路径算法: Bellman-Ford 算法: Bellman-Ford 算法是一种用于计算带权有向图中单源最短路径(SSSP:Single-Source Shor ...
- POJ3615(Cow Hurdles)图论-Floyd算法JAVA高速IO外挂!
POJ3615(Cow Hurdles) 图论-Floyd算法JAVA高速IO外挂! package classical_algorithm.graph.FloydWarshall; //http:/ ...
- 名帖352 黄庭坚 草书《浣花溪图引》
<中国书法名帖目录> 黄庭坚,字鲁直,号山谷道人,又号涪翁,洪州分宁(今江西修水)人.他与张耒.晁补之.秦观拜师大文豪苏轼,世人称为"四学士".黄庭坚善文章诗词皆擅,特 ...
- 【数模集】 图论常用算法 基础
图与网络优化概述 图论中所谓的"图"是指某类具体事物和这些事物之间的联系.如果我们用点表示这些具体事物,用连接两点的线段(直的或曲的)表示两个事物的特定的联系,就得到了描述这个&q ...
- 0x66.图论 - Tarjan算法与无向图连通性
目录 一.无向图的割点与桥 割点 桥/割边 时间戳 搜索树 追溯值 二.割边判定法则 三.割点判定法则 1.luogu P3388 [模板]割点(割顶) 2.luogu P3469 [POI2008] ...
- CSP认证201509-4 高速公路[C++题解]:强连通分量、tarjan算法模板题
题目分析 来源:acwing 分析: 所求即为强连通分量的个数,然后计算每个强连通分量中点的个数,相加即可. 所谓强连通分量,它是一个子图,其中任意两点可以相互到达,并且再加一个点,就不能满足任意两点 ...
最新文章
- tomcat5.5.9+sql2000数据库连接池配置
- how Lordec maps the long reads to DeBruijn Graph
- 第104天:web字体图标使用方法
- centos 6.5内核升级
- oracle 并接去掉字符串,ORACLE删除字符-TRIM字符截取-substr查找字符-instr
- .net错误处理机制
- mysql增量同步kafka_MySQL数据实时增量同步到Kafka - Flume
- 那些我希望在一开始使用 Zsh(oh-my-zsh) 时就知道的
- SAP Analytics Cloud和SAP Cloud for Customer的集成
- git version是什么软件_Deepin 15.11 安装 ZoneMinder 视频监控软件
- idea怎么把代码放到git_在IntelliJ IDEA中同步代码到华为云git仓库 (on windows)
- 游戏服务器框架 Leaf/go
- npm私服搭建与应用
- [C++]operator难点、豆知识
- python 执行cmd命令 改变目录_Python 改变当前工作目录
- 计算机apk文件无法打开,【电脑怎么打开apk文件】电脑如何打开apk文件_电脑上怎么打开apk-系统城...
- VsCode切换语言
- 般若波罗蜜多心经(观音心经)注解
- 8.高等数学-两个重要的极限定理
- java am pm_【am.pm正确时间书写格式】作文写作问答 - 归教作文网
热门文章
- 解决 “_pickle.PicklingError: Can‘t pickle: it‘s not the same object as sqlalchemy.orm.session.Session“
- 纸质合同和电子合同的区别
- 程序设计天梯赛L3-10 (什么逆天盲僧)
- java计算机毕业设计无极服装出租管理系统源码+lw文档+系统+数据库
- 如何清除电脑缓存?分享3个有效的方法!
- Flash:动画实例--球体渐隐渐显
- 宁夏破坏计算机信息系统案一审宣判
- Android实现倒计时的几种方案
- java课程设计五子棋小游戏(1)
- 文字超过两行显示省略号