poj-2449-Remmarguts' Date-A
来源:互联网 发布:wiki.ubuntu.org.cn 编辑:程序博客网 时间:2024/05/17 17:14
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<stdlib.h>#include<vector>#include<cmath>#include<queue>#include<set>#include<map>using namespace std;#define maxn 210000#define maxeg 110000#define maxpt 1100#define INF 99999999struct G{ int num; int head[maxpt]; struct list{int u,v,w,next;}edge[maxeg]; void init(){ memset(head,-1,sizeof(head)); num=0; } void add(int u,int v,int w){ edge[num].u=u;edge[num].v=v;edge[num].w=w; edge[num].next=head[u];head[u]=num++; }}gra,fgra;struct list{ int u; int g; int h; bool operator < (const list &a)const{ return g+h>a.g+a.h; }}p,pp;int n,m;int h[maxpt];void dij(int x){ int i; int vis[maxpt]; for(i=0;i<maxpt;i++){ vis[i]=0;h[i]=INF; } h[x]=0; while(1) { int minn=INF; int u; for(i=1;i<=n;i++) { if(!vis[i]&&h[i]<minn) { minn=h[i]; u=i; } } if(minn==INF)break; vis[u]=1; for(i=fgra.head[u];i!=-1;i=fgra.edge[i].next) { int v=fgra.edge[i].v; int w=fgra.edge[i].w; if(vis[v])continue; if(h[v]>h[u]+w)h[v]=h[u]+w; } }}priority_queue<list>que;int AS(int s,int t,int k){ int times[maxpt]; memset(times,0,sizeof(times)); while(!que.empty())que.pop(); p.u=s;p.g=0;p.h=h[s];que.push(p); while(!que.empty()) { p=que.top();que.pop(); times[p.u]++; if(times[p.u]==k&&p.u==t)return p.g; // if(times[p.u]>k)continue; for(int i=gra.head[p.u];i!=-1;i=gra.edge[i].next) { int v=gra.edge[i].v; int g=gra.edge[i].w+p.g; pp.u=v;pp.g=g;pp.h=h[v]; que.push(pp); } } return -1;}int main(){ int i,a,b,c,s,t,k; while(~scanf("%d%d",&n,&m)) { gra.init(); fgra.init(); for(i=1;i<=m;i++) { scanf("%d%d%d",&a,&b,&c); gra.add(a,b,c); fgra.add(b,a,c); } scanf("%d%d%d",&s,&t,&k); if(s==t)k++; dij(t); cout<<AS(s,t,k)<<endl; } return 0;}
0 0
- poj-2449-Remmarguts' Date-A
- POJ 2449 Remmarguts' Date A* -
- Remmarguts' Date poj 2449 A*
- POJ 2449 Remmarguts' Date A*算法
- POJ 2449 Remmarguts' Date Dij +A*
- poj 2449 Remmarguts' Date(A* + dijkstra)
- [POJ 2449] Remmarguts' Date [A*搜索]
- POJ 2449 Remmarguts' Date【SPFA】【A*】
- POJ 2449-Remmarguts' Date(A*+spfa)
- poj 2449 Remmarguts' Date(最短路+A*)
- POJ 2449 Remmarguts' Date(A* + spfa)
- poj-2449-Remmarguts' Date(A*算法+Dijkstra)
- POJ 2449 Remmarguts' Date——A*
- POJ 2449 Remmarguts' Date (A*+K短路)
- poj 2449 Remmarguts' Date
- POJ 2449 Remmarguts' Date
- POJ 2449 Remmarguts' Date
- poj 2449 Remmarguts' Date
- [原创]-IIS7.5优化,支持同时10万个请求
- 记录工作中的点滴技术
- 【动画教程】真封神南极服务端2.52架设第三集
- 【动画教程】真封神南极服务端2.52架设第四集
- JAVA 电子书
- poj-2449-Remmarguts' Date-A
- 常见的 特征点 提取 概念等内容
- 用axis2的插件自动生成客户端并调用
- Cocos2d-x v3.0正式版尝鲜体验【3】 Label文本标签
- CSS浮动
- 【动画教程】真封神南极服务端2.52架设第五集
- 第九周工作报告(2014。4.21~4.27)
- PAT1010 BASIC:一元多项式求导 (25)
- android 数据库版本升级