BZOJ 1579 道路升级 Dijkstra
来源:互联网 发布:身知内功 编辑:程序博客网 时间:2024/05/01 23:46
思路:
这道题 不能把所有边都建出来 会MLE的!!!
oh gosh
其实不建所有的边 用的时候再调就行了….(也没啥区别)
//By SiriusRen#include <queue>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define N 100050int n,m,k,first[N],v[N],w[N],next[N],tot,dis[N][21],vis[N][21],xx,yy,zz; void add(int x,int y,int z){ w[tot]=z,v[tot]=y,next[tot]=first[x],first[x]=tot++;}struct Node{int now,level,weight;}jy;bool operator < (Node a,Node b){return a.weight>b.weight;}void Dijkstra(){ memset(dis,0x3f,sizeof(dis)),dis[1][0]=0; priority_queue<Node>pq; jy.now=1,pq.push(jy); while(!pq.empty()){ Node t=pq.top();pq.pop(); if(vis[t.now][t.level])continue; vis[t.now][t.level]=1; for(int i=first[t.now];~i;i=next[i]){ if(!vis[v[i]][t.level]&&dis[v[i]][t.level]>dis[t.now][t.level]+w[i]){ dis[v[i]][t.level]=dis[t.now][t.level]+w[i]; jy.level=t.level,jy.now=v[i],jy.weight=dis[v[i]][t.level],pq.push(jy); } if(t.level<k&&!vis[v[i]][t.level+1]&&dis[v[i]][t.level+1]>dis[t.now][t.level]){ dis[v[i]][t.level+1]=dis[t.now][t.level]; jy.level=t.level+1,jy.now=v[i],jy.weight=dis[t.now][t.level],pq.push(jy); } } }}int main(){ memset(first,-1,sizeof(first)); scanf("%d%d%d",&n,&m,&k); for(int i=1;i<=m;i++){ scanf("%d%d%d",&xx,&yy,&zz); add(xx,yy,zz),add(yy,xx,zz); } Dijkstra(); printf("%d\n",dis[n][k]);}
1 0
- BZOJ 1579 道路升级 Dijkstra
- bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级
- BZOJ 1579: [Usaco2009 Feb]Revamping Trails 道路升级 分层图最短路
- bzoj 3624 免费道路
- bzoj 2435 道路修建
- BZOJ 2435 道路修建
- P3759道路升级
- 道路升级(分层图)
- 【bzoj 3624】: [Apio2008]免费道路
- 【BZOJ 1063】 [Noi2008]道路设计
- [BZOJ 3575] HNOI2014 道路堵塞
- BZOJ 3995 SDOI2015 道路修建
- BZOJ 3575: [Hnoi2014]道路堵塞
- BZOJ 3264 [Apio2008]免费道路
- BZOJ 3995: [SDOI2015]道路修建
- BZOJ P3624[Apio2008]免费道路
- BZOJ 3995 [SDOI2015]道路修建
- bzoj 3624: [Apio2008]免费道路
- Android ADB server didn't ACK * failed to start daemon * 简单有效的解决方案
- 从本地加载纹理【基于SOIL库】
- C语言time函数
- C语言 #define 与 const的区别
- React Native 之 Using a ScrollView
- BZOJ 1579 道路升级 Dijkstra
- 链表相关问题
- 解决maven项目中有小红叉的问题
- 初识MVP
- 动态规划学习
- wps for linux 不能使用搜狗(fcitx)输入法
- TortoiseGit 如何提交代码
- VS2010+QT5.1+opencv2.4.5图像界面第一个程序
- 内存管理 ARC + MRC