poj 2394 最短路
来源:互联网 发布:海关进口数据怎么查询 编辑:程序博客网 时间:2024/04/27 15:57
传送门
题意:略。
思路:最短路水题。
#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<queue>#define maxn 1<<29using namespace std;int n,m,c,t;int fst[505],next[300000],node[300000],l[300000];int d[505],ans[505],num,en;bool inq[505];void add(int u,int v,int ll){ next[en]=fst[u]; fst[u]=en; node[en]=v; l[en]=ll; en++;}void spfa(){ for(int i=1;i<=n;i++) { d[i]=maxn; } d[1]=0; memset(inq,0,sizeof(inq)); queue<int>q; q.push(1); inq[1]=1; while(!q.empty()) { int u=q.front(); q.pop(); inq[u]=0; for(int i=fst[u];i!=-1;i=next[i]) { int v=node[i]; if(d[v]>d[u]+l[i]) { d[v]=d[u]+l[i]; if(!inq[v]) { q.push(v); inq[v]=1; } } } }}int main(){ int u,v,ll; en=0; memset(fst,-1,sizeof(fst)); scanf("%d%d%d%d",&n,&m,&c,&t); for(int i=0;i<m;i++) { scanf("%d%d%d",&u,&v,&ll); add(u,v,ll); add(v,u,ll); } spfa(); num=0; for(int i=1;i<=c;i++) { scanf("%d",&u); if(d[u]<=t)ans[num++]=i; } cout<<num<<endl; for(int i=0;i<num;i++)cout<<ans[i]<<endl; return 0;}
- poj 2394 最短路
- poj 2253 最短路
- POJ 1135 最短路
- POJ 2267 最短路
- POJ 1797 最短路
- poj 1135最短路
- poj 1122最短路
- POJ 2240 最短路
- POJ 3268 最短路
- poj 1135 最短路
- poj 1502 最短路
- poj 1511 最短路
- poj 2139 最短路
- poj 3126 (最短路)
- poj 1063 最短路
- poj 3072(最短路)
- poj 3653(最短路)
- poj 3268 最短路
- POJ3468树状数组
- shell 特殊字符
- VS2010+Opencv配置——不用每个工程单独配置
- 线性时间排序和选择
- linux下笔记本有线网卡"未受管理"
- poj 2394 最短路
- C++程序只运行一次
- 大数相乘代码-字符串实现
- 基于AT89S52单片机的温湿度报警系统
- 百度绿萝算法打击友链交易
- Struts2字段校验和非字段校验
- Json树形结构数据转Java对象并存储到数据库的实现-超简单的JSON复杂数据处理 .
- Git忽略文件
- SPOJ1811最长公共子串问题(后缀自动机)