飞行路线(BZOJ 2763)
题目描述
输入
输出
样例输入
0 4
0 1 5
1 2 5
2 3 5
3 4 5
2 3 3
0 2 100
样例输出
提示
对于30%的数据,2<=n<=50,1<=m<=300,k=0;
对于50%的数据,2<=n<=600,1<=m<=6000,0<=k<=1;
对于100%的数据,2<=n<=10000,1<=m<=50000,0<=k<=10.
- /*
- 分层图最短路
- 建k+1层图,对于每条边都和它下一层图建一条边权为0的边,
- 然后进行优先队列优化的Dij
- */
- #include<cstdio>
- #include<iostream>
- #include<queue>
- #include<vector>
- #include<cstring>
- #define mk make_pair
- #define pa pair<int,int>
- #define M 2000010
- using namespace std;
- int n,m,k,s,t,num,head[M],dis[M],c[M];
- int x[M],y[M],z[M],ans=0xfffffff;
- priority_queue<pa,vector<pa>,greater<pa> >q;
- bool f[M];
- struct node
- {
- int u,v,pre,t;
- };node e[M];
- void add(int x,int y,int z)
- {
- for(int i=head[x];i;i=e[i].pre)
- if(e[i].v==y)
- {
- e[i].t=min(e[i].t,z);
- return;
- }
- num++;
- e[num].u=x;
- e[num].v=y;
- e[num].t=z;
- e[num].pre=head[x];
- head[x]=num;
- }
- void Dij(int x)
- {
- memset(dis,/,sizeof(dis));
- dis[x]=;q.push(mk(,x));
- while(!q.empty())
- {
- int d=q.top().first;
- int k=q.top().second;
- q.pop();
- if(f[k])continue;f[k]=;
- for(int i=head[k];i;i=e[i].pre)
- {
- int v=e[i].v;
- if(dis[v]>dis[k]+e[i].t)
- {
- dis[v]=dis[k]+e[i].t;
- q.push(mk(dis[v],v));
- }
- }
- }
- }
- int main()
- {
- scanf("%d%d%d%d%d",&n,&m,&k,&s,&t);
- s++;t++;n=n*(k+);
- for(int i=;i<=m;i++)
- scanf("%d%d%d",&x[i],&y[i],&z[i]),
- x[i]++,y[i]++;
- for(int i=;i<=m;i++)
- for(int j=;j<=k+;j++)
- {
- add((x[i]-)*(k+)+j,(y[i]-)*(k+)+j,z[i]);
- add((y[i]-)*(k+)+j,(x[i]-)*(k+)+j,z[i]);
- if(j<=k)
- {
- add((x[i]-)*(k+)+j,(y[i]-)*(k+)+j+,);
- add((y[i]-)*(k+)+j,(x[i]-)*(k+)+j+,);
- }
- }
- Dij((s-)*(k+)+);
- for(int j=;j<=k+;j++)
- ans=min(ans,dis[(t-)*(k+)+j]);
- printf("%d",ans);
- return ;
- }
飞行路线(BZOJ 2763)的更多相关文章
- ACM-ICPC 2018 南京赛区网络预赛 L && BZOJ 2763 分层最短路
https://nanti.jisuanke.com/t/31001 题意 可以把k条边的权值变为0,求s到t的最短路 解析 分层最短路 我们建立k+1层图 层与层之间边权为0,i 向 i+1层转 ...
- 分层图+最短路算法 BZOJ 2763: [JLOI2011]飞行路线
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MB Description Alice和Bob现在要乘飞机旅行,他们选择了一家相 ...
- BZOJ 2763: [JLOI2011]飞行路线 最短路
2763: [JLOI2011]飞行路线 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pr ...
- Bzoj 2763: [JLOI2011]飞行路线 dijkstra,堆,最短路,分层图
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1728 Solved: 649[Submit][Statu ...
- Bzoj 2763: [JLOI2011]飞行路线 拆点,分层图,最短路,SPFA
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1694 Solved: 635[Submit][Statu ...
- [BZOJ 2763][JLOI 2011] 飞行路线
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3203 Solved: 1223[Submit][Stat ...
- bzoj 2763: [JLOI2011]飞行路线 -- 分层图最短路
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MB Description Alice和Bob现在要乘飞机旅行,他们选择了一家相 ...
- BZOJ 2763: [JLOI2011]飞行路线 【分层图模板】
任意门:https://www.lydsy.com/JudgeOnline/problem.php?id=2763 2763: [JLOI2011]飞行路线 Time Limit: 10 Sec M ...
- BZOJ 2763: [JLOI2011]飞行路线 spfa dp
题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=2763 题解: d[x][kk]表示从s到x用了kk次免费机会的最少花费. 代码: #in ...
- BZOJ 2763 飞行路线 BFS分层
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2763 题目大意: Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司 ...
随机推荐
- HashMap,Hashset,ArrayList以及LinkedList集合的区别,以及各自的用法
基础内容 容器就是一种装其他各种对象的器皿.java.util包 容器:Set, List, Map ,数组.只有这四种容器. Collection(集合) 一个一个往里装,Map 一对一对往里装. ...
- mongodb多条件查询总结
根据两字段乘积过滤查询分页数据 db.cron.aggregate([{$project:{_id:,AppID:,result:{$add:["$endlottery",&quo ...
- [转载]ant和maven的区别
Ant是软件构建工具,Maven的定位是软件项目管理和理解工具.Maven除了具备Ant的功能外,还增加了以下主要的功能: 1)使用Project Object Model来对软件项目管理: 2)内置 ...
- 年度精品 XP,32/64位Win7,32/64位Win10系统【电脑城版】
随着Windows 10Build 10074 Insider Preview版发布,有理由相信,Win10离最终RTM阶段已经不远了.看来稍早前传闻的合作伙伴透露微软将在7月底正式发布Win10的消 ...
- 51nod 1067 Bash游戏 V2
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 有一堆石子共有N个.A B两个人轮流拿,A先拿.每次只能拿1,3,4颗,拿到最后1颗石子的人获胜.假设A B都非常聪 ...
- 深入理解Java的整型类型:如何实现2+2=5?
先看下这段神奇的Java代码: public static void main(String[] args) throws Exception { doSomethingMagic(); System ...
- C#飞行棋总结
以下是掷色子的一个代码,比较有代表性,里面的逻辑和内容都已注释,可通过注释了解这一方法的运作模式. public static void RowTouZi(int playerPos) //掷色子 { ...
- environ - 用户环境(变量)
SYNOPSIS 总览 extern char **environ; DESCRIPTION 描述 变量 environ 指向的是一个叫 'environment'(环境)的字符串数组 (这个变量必须 ...
- tomcat https协议
一.tomcat证书 JDK自带的keytool工具来生成证书 1. 在jdk的安装目录\bin\keytool.exe下打开keytool.exe 2. 在命令行中输入以下命令: keytool - ...
- easyui实现增删改查
陈旧的开发模式 美工(ui工程师:出一个项目模型) java工程师:将原有的html转成jsp,动态展示数据 缺点: 客户需要调节前端的展示效果 解决:由美工去重新排版,重新选色. 前后端分离: 前端 ...