codevs 1557 热浪
来源:互联网 发布:d h算法 编辑:程序博客网 时间:2024/04/30 22:02
codevs 1557 热浪
就是求最短路问题。
题解1(spfa):
#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;const int maxn=6500*2;//双向边struct cc{ int from,to,cost;}es[maxn];int first[maxn],next[maxn];int dis[maxn];bool vis[maxn];int tot=0;void build(int ff,int tt,int pp){ es[++tot]=(cc){ff,tt,pp}; next[tot]=first[ff]; first[ff]=tot;}queue<int>q;void spfa(int s){ dis[s]=0; q.push(s); vis[s]=1; while(!q.empty()) { int v=q.front(); q.pop(); vis[v]=0; for(int i=first[v];i;i=next[i]) { int u=es[i].to; if(dis[u]>dis[v]+es[i].cost) { dis[u]=dis[v]+es[i].cost; if(!vis[u]) { q.push(u); vis[u]=1; } } } }}int main(){ memset(dis,63,sizeof(dis)); int t,c,ts,te; scanf("%d%d%d%d",&t,&c,&ts,&te); for(int i=1;i<=c;i++) { int rs,re,ci; scanf("%d%d%d",&rs,&re,&ci); build(rs,re,ci); build(re,rs,ci); } spfa(ts); printf("%d",dis[te]); return 0;}
题解2(Dijkstra):
#include<iostream>#include<cstdio>#include<queue>#include<cstring>using namespace std;const int maxn=6500*2;struct cc{ int from,to,cost;}es[maxn];int first[maxn],next[maxn];bool vis[maxn];struct edge{ int num,dis;};bool operator < (edge a,edge b){ return a.dis>b.dis;}int tot=0;void build(int ff,int tt,int pp){ es[++tot]=(cc){ff,tt,pp}; next[tot]=first[ff]; first[ff]=tot;}int dis[maxn];priority_queue<edge>q;void Dijkstra(int s){ dis[s]=0; q.push((edge){s,dis[s]}); while(!q.empty()) { edge v=q.top(); q.pop(); for(int i=first[v.num];i;i=next[i]) { int u=es[i].to; if(dis[u]>dis[v.num]+es[i].cost) { dis[u]=dis[v.num]+es[i].cost; q.push((edge){u,dis[u]}); } } }}int main(){ memset(dis,63,sizeof(dis)); int T,C,Ts,Te; scanf("%d%d%d%d",&T,&C,&Ts,&Te); for(int i=1;i<=C;i++) { int rs,re,ci; scanf("%d%d%d",&rs,&re,&ci); build(rs,re,ci); build(re,rs,ci); } Dijkstra(Ts); printf("%d",dis[Te]); return 0;}
2 0
- CODEVS 1557 热浪
- codevs 1557 热浪
- Loi_Cunese|CODEVS|1557|热浪
- Codevs 1557 热浪
- codevs 1557 热浪
- 【codevs 1557】热浪
- 【codevs 1557】热浪(SPFA)
- 【codevs 1557】热浪(Dijkstra)
- Codevs 1557 热浪 解题报告
- 【codevs 1557】热浪的不同姿势
- 最短路经典例题 codevs 1557 热浪
- codevs 1557 热浪(最短路【模板】)
- 最短路算法 codevs 1557 热浪
- codevs 1557 热浪 SPFA 最短路
- codevs 1557 热浪 SPFA 解题报告
- 单源最短路问题 Codevs 1557 热浪(含讲解)
- 热浪
- 热浪
- 当游戏爱上MongoDB会怎么样???
- 掌握 Linux PC 性能之基准测试
- Generalized Abbreviation
- SQL 之 触发器
- ubuntu下的两种应急方法
- codevs 1557 热浪
- Leetcode 81. Search in Rotated Sorted Array II (Medium) (java)
- LDAP简介
- JAVA中的接口和抽象类(转)
- CSS的2个冷门却又实用的选择器
- 2016年学哪个编程语言最有前途?
- 第二天学习笔记
- java ClassLoader
- Linux设备驱动模型