codeforces843D Dynamic Shortest Path -- 最短路
来源:互联网 发布:apache官方下载32位 编辑:程序博客网 时间:2024/06/06 13:20
先对原图求出每个点到
每次询问时在新图中将对应边权加上后,边权超过
然后用
时间复杂度
具体可以看代码。
代码
#include<queue>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;#define N 100010#define ll long longconst ll INF = 1e15;struct Edge{ int t,nx,w;}e[N<<1];queue<int>g[N];ll d[N],f[N],y;int i,j,k,n,m,q,x,h[N];struct Node{ int x; Node(int x=0):x(x){} bool operator < (Node a)const{ return d[x]>d[a.x]; }};priority_queue<Node>Q;inline void Dij(){ for(i=2;i<=n;i++)d[i]=INF; Q.push(Node(1)); while(!Q.empty()){ x=Q.top().x;Q.pop(); for(int j=h[x];j;j=e[j].nx) if(d[e[j].t]>d[x]+e[j].w){ d[e[j].t]=d[x]+e[j].w; Q.push(e[j].t); } }}int main(){ scanf("%d%d%d",&n,&m,&q); for(i=1;i<=m;i++)scanf("%d%d%d",&x,&e[i].t,&e[i].w),e[i].nx=h[x],h[x]=i; Dij(); while(q--){ scanf("%d%d",&x,&k); if(x==1)printf("%I64d\n",d[k]>=INF?-1:d[k]);else{ for(i=1;i<=k;i++)scanf("%d",&x),e[x].w++; for(i=2;i<=n;i++)f[i]=INF; g[m=0].push(1);if(k>=n)k=n-1; for(i=0;i<=m;i++){ while(!g[i].empty()){ x=g[i].front();g[i].pop(); if(i>f[x])continue; for(j=h[x];j;j=e[j].nx){ y=f[x]+d[x]+e[j].w-d[e[j].t]; if(f[e[j].t]>y){ f[e[j].t]=y; if(y<=k){ g[y].push(e[j].t); if(y>m)m=y; } } } } } for(i=2;i<=n;i++)d[i]=min(INF,d[i]+f[i]); } } return 0;}
阅读全文
1 0
- codeforces843D Dynamic Shortest Path -- 最短路
- SGU103 最短路 Shortest Path
- HDU 3631 Shortest Path 最短路
- HDU 4479 Shortest path(最短路)
- 最短路->hdu 3631 Shortest Path
- HDU-2807 The Shortest Path 最短路
- 【HDU】2807 The Shortest Path 最短路
- HDU - 3631 Shortest Path(Floyd最短路)
- hdu 3631 Shortest Path(最短路)
- HDU 4479 Shortest path(最短路)
- hdoj 5636 Shortest Path 【最短路】
- HDU 5636 Shortest Path(最短路)
- Hdu 5636 Shortest Path【最短路+暴力】
- hdu 5636 Shortest Path(Floyd最短路)
- HDOJ-----5636Shortest Path最短路
- 最短路计数(Shortest Path Count)
- HDU The Shortest Path 矩阵的最短路
- ZOJ 2760 How Many Shortest Path 最短路+最大流
- 【POJ】3104
- python_day2
- java设计模式之单例模式
- HTML5_js实现小游戏别踩白方块
- 暑假总结
- codeforces843D Dynamic Shortest Path -- 最短路
- 190. Reverse Bits
- tomcat websocket FutureToSendHandler TimeoutException
- 【网络流24题】圆桌聚餐(二分图)
- Common Sense of 信息安全
- 【2017年】阿里巴巴算法笔试第二题
- 简单的MFC画正弦曲线
- 阿里2018校招内推笔试题-字符串切分
- MFC 小游戏之连连看