分层图最短路( LYOi Online Judge 初中的最后一天)
代码参照: 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 初中的最后一天)的更多相关文章
- poj3635Full Tank?[分层图最短路]
Full Tank? Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7248 Accepted: 2338 Descri ...
- HDU 5669 线段树优化建图+分层图最短路
用线段树维护建图,即把用线段树把每个区间都标号了,Tree1中子节点有到达父节点的单向边,Tree2中父节点有到达子节点的单向边. 每次将源插入Tree1,汇插入Tree2,中间用临时节点相连.那么T ...
- BZOJ 2763 分层图最短路
突然发现我不会分层图最短路,写一发. 就是同层中用双向边相连,用单向边连下一层 #include <cstdio> #include <algorithm> #include ...
- 【网络流24题】 No.15 汽车加油行驶问题 (分层图最短路i)
[题意] 问题描述:给定一个 N*N 的方形网格,设其左上角为起点◎, 坐标为( 1, 1), X 轴向右为正, Y轴向下为正, 每个方格边长为 1, 如图所示. 一辆汽车从起点◎出发驶向右下角终点▲ ...
- 【网络流24题】 No.14 孤岛营救问题 (分层图最短路)
[题意] 1944 年,特种兵麦克接到国防部的命令,要求立即赶赴太平洋上的一个孤岛, 营救被敌军俘虏的大兵瑞恩. 瑞恩被关押在一个迷宫里, 迷宫地形复杂, 但幸好麦克得到了迷宫的地形图. 迷宫的外形是 ...
- BZOJ_2662_[BeiJing wc2012]冻结_分层图最短路
BZOJ_2662_[BeiJing wc2012]冻结_分层图最短路 Description “我要成为魔法少女!” “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切, ...
- BZOJ_1579_[Usaco2009 Feb]Revamping Trails 道路升级_分层图最短路
BZOJ_1579_[Usaco2009 Feb]Revamping Trails 道路升级_分层图最短路 Description 每天,农夫John需要经过一些道路去检查牛棚N里面的牛. 农场上有M ...
- Nowcoder contest 370H Rinne Loves Dynamic Graph【分层图最短路】
<题目链接> 题目大意:Rinne 学到了一个新的奇妙的东西叫做动态图,这里的动态图的定义是边权可以随着操作而变动的图.当我们在这个图上经过一条边的时候,这个图上所有边的边权都会发生变动. ...
- ACM-ICPC 2018 南京赛区网络预赛 L 【分层图最短路】
<题目链接> 题目大意: 有N个城市,这些城市之间有M条有向边,每条边有权值,能够选择K条边 边权置为0,求1到N的最短距离. 解题分析: 分层图最短路模板题,将该图看成 K+1 层图,然 ...
随机推荐
- 2021新年 Vue3.0 + Element UI 尝鲜小记
2021年,又是新的一年,Vue 已经发布 3.0 版本,最好用的 UI 组件库 Element UI 也发布了适配 Vue3.0 的新版本,是时候开始学习一下这两个新技术. 本文主要记录了使用 Vu ...
- 十四:SQL注入之类型及提交注入
简要明确参数类型 数字,字符,搜索,json等 简要明确请求方法 GET,POST,COOKIE,REQUEST,HTTP头 其中SQL语句干扰符号:' " % ) } 等,具体查看用法 非 ...
- MyISAM与InnoDB两者之间区别与选择(转)
Mysql在V5.1之前默认存储引擎是MyISAM:在此之后默认存储引擎是InnoDB MyISAM:默认表类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Acces ...
- 【ASM】查看ASM磁盘组剩余容量和总容量
col total_size for a10; col free_size for a20; select name,total_mb/1024 || 'G' as total_size , free ...
- CTFshow-萌新赛web_假赛生
打开靶机 网页源码提示代码如下 根据提示,存在 login.php register.php,根据要求需要用户名为admin,尝试注册后发现已存在,接着尝试注册用户名admin+空格,接着用admin ...
- 通过SE14重建数据库表
通过程序中的SQL语句向数据库表中插入的内容,系统无法转换,并且已经存在于数据库表中,那么当对该表进行保存数据的修改时,可能会导致该表从数据库中的删除. 举了例子:(完全是为了方便理解) SAP系统, ...
- Ubuntu20.04 安装火狐开发者版本(水狐)步骤
1. 从Mozilla Firefox Developer Edition webpage下载. 2. 将下载的"tar.bz2"文件解压到指定目录, 例如/opt/firefox ...
- scrapy-redis非多网址采集的使用
问题描述 默认RedisSpider在启动时,首先会读取redis中的spidername:start_urls,如果有值则根据url构建request对象. 现在的要求是,根据特定关键词采集. 例如 ...
- 2 安装部署flume
本文对flume进行安装部署 flume是什么?传送门:https://www.cnblogs.com/zhqin/p/12230301.html 0.要安装部署在日志所在的服务器,或者把日志发送到日 ...
- 深度漫谈数据系统架构——Lambda architecture
https://mp.weixin.qq.com/s/whmhm2yzug2WVdH3dTq8hg