分层最短路(牛客第四场)-- free
题意:
给你边权,起点和终点,有k次机会把某条路变为0,问你最短路是多长。
思路:
分层最短路模板题。题目有点坑(卡掉了SPFA,只能用dijkstra跑的算法)。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std; const int MAXN=1e3,MAXM=5e3,MAXK=,INF=~0U>>;
int N,M,K;
int S,T; struct E{int to,next,value;} e[*MAXM*(MAXK+)+MAXK+];int ecnt,G[MAXN*(MAXK+)+];
void addEdge(int u,int v,int w){e[++ecnt]={v,G[u],w};G[u]=ecnt;} void readInt(int & x)
{
x=;
bool flag=false;
char c;
do c=getchar(); while(c!='-'&&(c<''||c>''));
if(c=='-') flag=true;
else x+=c-'';
c=getchar();
while(c>=''&&c<='')
{
x*=;
x+=c-'';
c=getchar();
}
} inline void read()
{
int i,j;
readInt(N);readInt(M);
readInt(S);readInt(T);readInt(K);
for(i=;i<=M;i++)
{
int u,v,w;
readInt(u);readInt(v);readInt(w);
for(j=;j<=K;j++)
{
addEdge(u+N*j,v+N*j,w);
addEdge(v+N*j,u+N*j,w);
if(j!=K)
{
addEdge(u+N*j,v+N*(j+),);
addEdge(v+N*j,u+N*(j+),);
}
}
}
} struct HN{int id,v;bool operator<(const HN & ot)const{return v>ot.v;}}; priority_queue<HN> heap; bool inS[MAXN*(MAXK+)+];
int dis[MAXN*(MAXK+)+]; void dijkstra(int v0)
{
int i;
for(i=;i<=N*(K+);i++) dis[i]=INF;
memset(inS,false,sizeof(inS));
dis[v0]=;
heap.push((HN){v0,});
while(!heap.empty())
{
int u=heap.top().id;heap.pop();
if(inS[u]) continue;
inS[u]=true;
for(i=G[u];i;i=e[i].next)
{
int v=e[i].to;
if(!inS[v])
if(dis[v]>dis[u]+e[i].value)
{
dis[v]=dis[u]+e[i].value;
heap.push((HN){v,dis[v]});
}
}
}
} int main()
{
//freopen("Motor.in","r",stdin);
//freopen("Motor.out","w",stdout);
int i;
read();
dijkstra(S);
int ans=INF;
for(i=;i<=K;i++) ans=min(ans,dis[T+N*i]);
printf("%d",ans);
return ;
}
分层最短路(牛客第四场)-- free的更多相关文章
- %300为0的个数(牛客第四场)-- number
题意: 给你一串数,问你如题. 思路: 我不是这样的作法,从后往前,先取00,再算%3==0的个数,往前推的时候有递推关系: #define IOS ios_base::sync_with_stdio ...
- 3的倍数 或运算构造x(牛客第四场)-- triples I
题意: 给你一个数,希望你能用最少的3的倍数或运算成它,让你输出答案. 思路: 进制%3有规律,1.2.4.8.16%3是1.2.1.2.1 ... 利用这一点分情况取一些位合成一些数就是答案了. # ...
- 笛卡尔树--牛客第四场(sequence)
思路: O(n)建一颗笛卡尔树,再O(n)dfs向上合并答案就行了. #define IOS ios_base::sync_with_stdio(0); cin.tie(0); #include &l ...
- 线性基求交(线段树)--牛客第四场(xor)
题意: 给你n个基,q个询问,每个询问问你能不能 l~r 的所有基都能表示 x . 思路: 建一颗线性基的线段树,up就是求交的过程,按照线段树区间查询的方法进行check就可以了. #define ...
- 最短meeting路线(树的直径)--牛客第四场(meeting)
题意: 给你一棵树,树上有些点是有人的,问你选一个点,最短的(最远的那个人的距离)是多少. 思路: 其实就是树的直径,两遍dfs,dfs第二遍的时候遇到人就更新直径就行了,ans是/2,奇数的话+1. ...
- 牛客第三场多校 H Diff-prime Pairs
链接:https://www.nowcoder.com/acm/contest/141/H来源:牛客网 Eddy has solved lots of problem involving calcul ...
- 牛客第五场多校 J plan 思维
链接:https://www.nowcoder.com/acm/contest/143/J来源:牛客网 There are n students going to travel. And hotel ...
- 2019牛客第八场多校 E_Explorer 可撤销并查集(栈)+线段树
目录 题意: 分析: @(2019牛客暑期多校训练营(第八场)E_Explorer) 题意: 链接 题目类似:CF366D,Gym101652T 本题给你\(n(100000)\)个点\(m(1000 ...
- 牛客网第二场Jfarm(随机化+二维前缀和)
链接:https://www.nowcoder.com/acm/contest/140/J 来源:牛客网 White Rabbit has a rectangular farmland of n*m. ...
随机推荐
- 20.Python类型转换,Python数据类型转换函数大全
虽然 Python 是弱类型编程语言,不需要像 Java 或 C 语言那样还要在使用变量前声明变量的类型,但在一些特定场景中,仍然需要用到类型转换. 比如说,我们想通过使用 print() 函数输出信 ...
- Vue_(组件)自定义指令
Vue.js自定义指令 传送门 自定义指令:除了内置指令,Vue也允许用户自定义指令 注册指令:通过全局API Vue.directive可以注册自定义指令 自定义指令的钩子函数参数:自定义指令的钩子 ...
- linux mmap 内存映射
mmap() vs read()/write()/lseek() 通过strace统计系统调用的时候,经常可以看到mmap()与mmap2().系统调用mmap()可以将某文件映射至内存(进程空间), ...
- 黑马lavarel教程---10、lavarel模型关联
黑马lavarel教程---10.lavarel模型关联 一.总结 一句话总结: 1.模型关联比较方便,一次定义,后面都可以使用 2.关联关系 使用动态属性进行调用 1.一对多,多对多实例? 一对多: ...
- MemoScope.Net
What is MemoScope.Net ? It's a tool to analyze .Net process memory: it can dump an application's mem ...
- mysql 查看库结构---查看表结构
查看库结构:SHOW DATABASES; 查看表结构: show tables即为显示当前数据库中所有的表.又如: mysql> use dbname //进入dbname库Database ...
- RzPageControl(pagecontrol)实现多标签的动态添加,切换,关闭
https://blog.csdn.net/pdw2009/article/details/76157651 使用RzPageControl来实现多标签页使用菜单来打开标签页,通过标签页的captio ...
- TortoiseSvn客户端介绍
TortoiseSVN 是svn版本控制系统的一个免费开源客户端,它是svn版本控制的 Windows 扩展.可以使你避免使用枯燥而且不方便的命令行.它完全嵌入 Windows Explorer,使用 ...
- redis5.0编译安装
##################### linux下运行redis 1.下载源码 https://redis.io/ 2.将源码上传到服务器中,进行编译安装 a)可以使用rz进行上传(sz是将服务 ...
- easy dragging script
下面的ahk脚本提供了windows下alt dragging的能力: ; Easy Window Dragging -- KDE style (requires XP/2k/NT) -- by Jo ...