代码参照:   LYOI Online Judge     #374. 初中的最后一天

分层图最短路模板题

  1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<algorithm>
5 #include<queue>
6
7 using namespace std;
8
9 const int MAXN=5010;
10 const int MAXM=125100;
11 const int MOD = 1e9+7;
12 int n,m,k,cnt;
13 int head[MAXN];
14 int d[MAXN][60];
15
16 struct Edge{
17 int s,t,w,next;
18 }edge[MAXM<<1];
19
20 inline int read(){
21 int s=0,w=1;
22 char ch=getchar();
23 while (ch<'0'||ch>'9'){
24 if(ch == '-') w = -1;
25 ch = getchar();
26 }
27 while (ch>='0'&&ch<='9'){
28 s=s*10+ch-'0';
29 ch=getchar();
30 }
31 return s*w ;
32 }
33
34 void Add(int u,int v ,int wi ){
35 cnt++ ;
36 edge[cnt].s=u;
37 edge[cnt].t=v;
38 edge[cnt].w=wi;
39 edge[cnt].next = head[u];
40 head[u] = cnt;
41 }
42
43 struct HeapNode{
44 int pos , dis , v ;
45 bool operator < ( const HeapNode &a ) const {
46 return a.dis < dis ;
47 }
48 };
49
50 void dijkstra( ){
51 priority_queue<HeapNode>Q;
52 for(int i = 1;i <= n;i++){
53 for(int j = 0 ; j <= k; j++ ){
54 d[i][j]=2147483647;
55 }
56 }
57 d[1][0] = 0 ;
58 Q.push((HeapNode){1,0,0});
59 while(!Q.empty()){
60 HeapNode tmp = Q.top() ;
61 int u = tmp.pos;
62 int t = tmp.v;
63 if( d[u][t] != tmp.dis ){
64 Q.pop();
65 continue;
66 }
67 Q.pop();
68 for(int i = head[u] ; i ; i = edge[i].next ){
69 int to = edge[i].t ;
70 int wi = edge[i].w ;
71 if( d[to][t] > d[u][t] + wi ){
72 d[to][t] = d[u][t] + wi ;
73 Q.push ( (HeapNode) { to, d[to][t] , t });
74 }
75 if( t<k &&d[to][t+1] >(d[u][t]) + (edge[i].w>>1)){
76 d[to][t+1] = d[u][t] + (edge[i].w>>1);
77 Q.push( (HeapNode){to , d[to][t+1], t+1 });
78 }
79 }
80 }
81 }
82
83 int main(){
84
85 n=read(); m=read(); k=read();
86
87 for(int i = 1 ;i <= m ; i++ ){
88 int x , y , z ;
89 x=read() ; y=read() ; z=read() ;
90 Add(x,y,z); Add(y,x,z);
91 }
92
93 int time;
94 time= read();
95 int minn=2147483647;
96
97 dijkstra() ;
98 for(int i=0;i<=k;i++){
99 minn = min(minn , d[n][i]) ;
100 }
101
102 if(minn > time ){
103 printf("QaQ\n");
104 }
105 else printf("YES\n");
106 printf("%d",minn%MOD);
107 return 0;
108 }

分层图最短路( LYOi Online Judge 初中的最后一天)的更多相关文章

  1. poj3635Full Tank?[分层图最短路]

    Full Tank? Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7248   Accepted: 2338 Descri ...

  2. HDU 5669 线段树优化建图+分层图最短路

    用线段树维护建图,即把用线段树把每个区间都标号了,Tree1中子节点有到达父节点的单向边,Tree2中父节点有到达子节点的单向边. 每次将源插入Tree1,汇插入Tree2,中间用临时节点相连.那么T ...

  3. BZOJ 2763 分层图最短路

    突然发现我不会分层图最短路,写一发. 就是同层中用双向边相连,用单向边连下一层 #include <cstdio> #include <algorithm> #include ...

  4. 【网络流24题】 No.15 汽车加油行驶问题 (分层图最短路i)

    [题意] 问题描述:给定一个 N*N 的方形网格,设其左上角为起点◎, 坐标为( 1, 1), X 轴向右为正, Y轴向下为正, 每个方格边长为 1, 如图所示. 一辆汽车从起点◎出发驶向右下角终点▲ ...

  5. 【网络流24题】 No.14 孤岛营救问题 (分层图最短路)

    [题意] 1944 年,特种兵麦克接到国防部的命令,要求立即赶赴太平洋上的一个孤岛, 营救被敌军俘虏的大兵瑞恩. 瑞恩被关押在一个迷宫里, 迷宫地形复杂, 但幸好麦克得到了迷宫的地形图. 迷宫的外形是 ...

  6. BZOJ_2662_[BeiJing wc2012]冻结_分层图最短路

    BZOJ_2662_[BeiJing wc2012]冻结_分层图最短路 Description “我要成为魔法少女!”     “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切, ...

  7. BZOJ_1579_[Usaco2009 Feb]Revamping Trails 道路升级_分层图最短路

    BZOJ_1579_[Usaco2009 Feb]Revamping Trails 道路升级_分层图最短路 Description 每天,农夫John需要经过一些道路去检查牛棚N里面的牛. 农场上有M ...

  8. Nowcoder contest 370H Rinne Loves Dynamic Graph【分层图最短路】

    <题目链接> 题目大意:Rinne 学到了一个新的奇妙的东西叫做动态图,这里的动态图的定义是边权可以随着操作而变动的图.当我们在这个图上经过一条边的时候,这个图上所有边的边权都会发生变动. ...

  9. ACM-ICPC 2018 南京赛区网络预赛 L 【分层图最短路】

    <题目链接> 题目大意: 有N个城市,这些城市之间有M条有向边,每条边有权值,能够选择K条边 边权置为0,求1到N的最短距离. 解题分析: 分层图最短路模板题,将该图看成 K+1 层图,然 ...

随机推荐

  1. Linux服务器下安装Composer 并使用Composer安装Thinkphp5.0

    Composer官方文档:https://docs.phpcomposer.com/00-intro.htmlComposer是一个php的包管理器.要求php版本在5.3以上. 一.安装Compos ...

  2. python基础学习总结

    python管理cisco设备:http://www.linuxeye.com/program/1680.html 学习:https://www.liaoxuefeng.com/wiki/001431 ...

  3. Kubernetes学习笔记之安装minikube并运行个简单应用程序

    前言:本笔记仅记录学习记录,可能存在错误!!!使用的环境是Ubuntu Desktop 20.04,也有用Windows 10 操作的,根据的文档是minikube的文档教程,链接:https://m ...

  4. 日常采坑:.NetCore上传大文件

    一..NetCore上传大文件 .NetCore3.1 webapi 本地测试上传时,遇到一个坑,大点的文件直接失败,根本不走控制器方法. 二.大文件上传配置 IFormFile方式,vs IIS E ...

  5. 改进你的c#代码的5个技巧(四)

    像每一篇文章一样,我会重复几行.我在我的Core i3 CPU.4GB主内存和Windows 7平台上测试了以下代码.如果你在不同的硬件配置或使用不同的平台,那么你的输出可能会随着我的输出屏幕而变化, ...

  6. P1967 货车运输(倍增LCA,生成树)

    题目链接: https://www.luogu.org/problemnew/show/P1967 题目描述 A国有n座城市,编号从 1到n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制, ...

  7. CTS相关的几个表

    TMSALOG/TMSALOGAR :STMS传输日志表 TMSCNFS:传输组 TMSCDOM:传输域 TMSCDES:传输目的地 TMSBUFTXT:传输请求的短文本和用户 TMSCSYS:tms ...

  8. C# 关机/重启/注销计算机

    一.调用 shutdown.exe 执行操作 调用 shutdown.exe 执行计算机关机.重启.注销操作,还可以设置多长时间后执行操作,代码如下: 1 /// <summary> 2 ...

  9. [Usaco2005 Mar]Out of Hay 干草危机

    题目描述 Bessie 计划调查N (2 <= N <= 2,000)个农场的干草情况,它从1号农场出发.农场之间总共有M (1 <= M <= 10,000)条双向道路,所有 ...

  10. ES数据库高可用配置

    ES高可用集群部署 1.ES高可用架构图 2.创建ES用户组 1.Elasticsearch不能在 root 用户下启动,我们需要在三台机器上分创建一个普通用户# 创建elastic用户 userad ...