算法:分层图

难度:NOIP

  还是易见分层图,跑一跑就好了,根据上一道题留下的坑,我写出了DP的分层图。

代码如下:

#include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <queue>
#include <deque>
#include <algorithm>
#define N 50005
using namespace std;
struct node
{int next;int to;int val;
}edge[N<<1];
int head[N],dis[N][15],vis[N][15];
int cnt=1;
void init()
{memset(head,-1,sizeof(head));cnt=1;
}
void add(int u,int v,int w)
{edge[cnt].next=head[u];edge[cnt].to=v;edge[cnt].val=w;head[u]=cnt++;
}
struct no
{int po;int d;int f;
};
priority_queue<no>Q;
bool operator < (no a,no b)
{return a.d>b.d;
}
int sta,des;
int n,m,k;
void dijks(int rt)
{memset(dis,0x3f3f3f3f,sizeof(dis));no p;p.po=rt;p.d=0;p.f=0;dis[rt][0]=0;Q.push(p);while(!Q.empty()){no tem=Q.top();Q.pop();int f=tem.f;if(vis[tem.po][f]) continue;vis[tem.po][f]=1;int u=tem.po,d=tem.d;if(u==des){printf("%d\n",tem.d);exit(0);}for(int i = head[u];i != -1;i=edge[i].next){int to=edge[i].to;no pp;if((f<k)&&(!vis[to][f+1])&&(dis[to][f+1]>d)){dis[to][f+1]=d;pp.po=to;pp.d=d;pp.f=f+1;Q.push(pp);}if(!vis[to][f]&&dis[to][f]>d+edge[i].val);{dis[to][f]=d+edge[i].val;pp.po=to;pp.d=dis[to][f];pp.f=f;Q.push(pp);}}}
}
int main()
{init();scanf("%d%d%d",&n,&m,&k);scanf("%d%d",&sta,&des);for(int i = 1;i <= m;i++){int u,v,w;scanf("%d%d%d",&u,&v,&w);add(u,v,w);add(v,u,w);}dijks(sta);return 0 ;
}

bzoj 2763:[JLOI2011]飞行路线(luogu 4568)相关推荐

  1. bzoj 2763 [JLOI2011]飞行路线——分层图

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2763 分层图两种方法的练习. 1.把图分成k+1层,本层去上面一层的边免费.但空间时间都不算 ...

  2. BZOJ 2763: [JLOI2011]飞行路线 spfa dp

    题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=2763 题解: d[x][kk]表示从s到x用了kk次免费机会的最少花费. 代码: #in ...

  3. BZOJ 2763: [JLOI2011]飞行路线 【SPFA】

    Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的价格.Al ...

  4. BZOJ 2763[JLOI2011]飞行路线 - 最短路

    描述 给出一个无向图, 出发地$s$和目的地$t$, 让你求出不计算 任意$K$条边权值 的最短路 题解 刚开始我是用记忆化搜索记录状态$F_{i, k}$, 表示从出发地出发 到第$i$个城市, 还 ...

  5. bzoj2763 [JLOI2011]飞行路线

    2763: [JLOI2011]飞行路线 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 3216  Solved: 1230 [Submit][St ...

  6. P4568 [JLOI2011]飞行路线

    P4568 [JLOI2011]飞行路线 Description Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1 ...

  7. 洛谷P4568 [JLOI2011] 飞行路线 题解

    洛谷P4568 [JLOI2011] 飞行路线 题解 题目链接:P4568 [JLOI2011] 飞行路线 题意: Alice 和 Bob 现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公 ...

  8. 洛谷 P4568 [JLOI2011] 飞行路线(分层图最短路)

    [JLOI2011] 飞行路线 题目描述 Alice 和 Bob 现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在 n n n 个城市设有业务,设这些城市分别标记为 0 0 0 到 ...

  9. 洛谷 4568 [JLOI2011] 飞行路线

    题目戳这里 一句话题意: 有n个点,m条边的有向图,最多可以把k条边变为0,求从起点到终点最短距离. Solution 首先看到这题目,感觉贼难,看起来像DP,貌似也有大佬这么做,但鉴于本蒟蒻思维能力 ...

  10. JLOI2011 飞行路线

    洛谷 BZOJ 分析 经典的分层最短路题(我不会). 建 \(k+1\) 层图,跑一遍最短路,找到 \(dis[i]\) 最小的一个. 代码 #include <queue> #inclu ...

最新文章

  1. 机房收费系统总结【3】-数据库细节
  2. nginx虚拟目录设置 alias 和 root
  3. 算法战:需要人工智能生态系统来增强安全性
  4. 【 karle 专栏 】Android 初探底层知识系列
  5. Visual Studio找不到iOS模拟器
  6. 安卓系统源码编译系列(六)——单独编译内置浏览器WebView教程
  7. jsp session
  8. 图片随意移动,可以拖动图片计算
  9. 【Java】@ResponseBody 返回JsonObject
  10. 移动开发语言Swift
  11. 16kb等于多少b_MySQL为何选择B+树存储索引?
  12. 自定义 QTreeView
  13. python-opencv:在视频中显示fps等opencv快速入门
  14. Java 订单管理系统
  15. Android:H5 通过 URL Scheme 拉起app应用
  16. 5 款常用的 C++ 在线编译器推荐
  17. 为什么今年的苹果手机不支持5G?原因有四点,网友:错怪库克了
  18. iOS 架构模式 - 简述 MVC, MVP, MVVM 和 VIPER (译)
  19. SD卡SPI模式入门教程
  20. mysql容器保存为镜像实战操作(拷贝方法)

热门文章

  1. API调用,API传参,面向对接开发,你真的会写接口文档吗?
  2. Linux - 增加用户、添加用户组
  3. 有监督学习和无监督学习的异同
  4. 企业安全建设-蜜标(honeytokens)
  5. 打印纸张尺寸换算_纸张尺寸对照表
  6. 使用AltSearch格式化Kindle读书笔记
  7. win10系统迁移后系统重装_win10分区助手迁移系统到SSD固态硬盘的技巧
  8. 分而治之,大型文件分片上传
  9. 工业AGV(含AMR)工程师要求汇总220331
  10. python如何修改图片透明度_如何改变图像的不透明度