Time Limit: 4000MS   Memory Limit: 65536K
Total Submissions: 30725   Accepted: 8389

Description

"Good man never makes girls wait or breaks an appointment!" said the mandarin duck father. Softly touching his little ducks' head, he told them a story.

"Prince Remmarguts lives in his kingdom UDF – United Delta of Freedom. One day their neighboring country sent them Princess Uyuw on a diplomatic mission."

"Erenow, the princess sent Remmarguts a letter, informing him that she would come to the hall and hold commercial talks with UDF if and only if the prince go and meet her via the K-th shortest path. (in fact, Uyuw does not want to come at all)"

Being interested in the trade development and such a lovely girl, Prince Remmarguts really became enamored. He needs you - the prime minister's help!

DETAILS: UDF's capital consists of N stations. The hall is numbered S, while the station numbered T denotes prince' current place. M muddy directed sideways connect some of the stations. Remmarguts' path to welcome the princess might include the same station twice or more than twice, even it is the station with number S or T. Different paths with same length will be considered disparate.

Input

The first line contains two integer numbers N and M (1 <= N <= 1000, 0 <= M <= 100000). Stations are numbered from 1 to N. Each of the following M lines contains three integer numbers A, B and T (1 <= A, B <= N, 1 <= T <= 100). It shows that there is a directed sideway from A-th station to B-th station with time T.

The last line consists of three integer numbers S, T and K (1 <= S, T <= N, 1 <= K <= 1000).

Output

A single line consisting of a single integer number: the length (time required) to welcome Princess Uyuw using the K-th shortest path. If K-th shortest path does not exist, you should output "-1" (without quotes) instead.

Sample Input

2 2
1 2 5
2 1 4
1 2 2

Sample Output

14

Source

POJ Monthly,Zeyuan Zhu
 
 
丧心病狂的一道题!
丫的卡我的scanf!
k短路模版
做完这题大脑彻底短路了。
过程非常艰辛。。
从MLE RE 到 WA 的时候 我好激动啊。。

屠龙宝刀点击就送

#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
#define M 100005
#define N 1005
using namespace std;
struct node
{
int to,f,g;
bool operator<(node a)const
{
if(f==a.f) return g>a.g;
return f>a.f;
}
};
struct Edge
{
int next,to,val;
};
Edge edge1[M*],edge2[M*];
int n,m,dist[N],head1[N],head2[N],cnt;
bool vis[N];
void spfa(int s)
{
queue<int>Q;
for(int i=;i<=n;++i) dist[i]=M,vis[i]=;
dist[s]=;
Q.push(s);
vis[s]=;
while(!Q.empty())
{
int now=Q.front();Q.pop();
vis[now]=;
for(int i=head2[now];i;i=edge2[i].next)
{
int v=edge2[i].to;
if(dist[v]>dist[now]+edge2[i].val)
{
dist[v]=dist[now]+edge2[i].val;
if(!vis[v])
{
vis[v]=;
Q.push(v);
}
}
}
}
}
inline void ins(int u,int v,int w)
{
edge1[++cnt].next=head1[u];
edge1[cnt].to=v;
edge1[cnt].val=w;
head1[u]=cnt;
edge2[cnt].next=head2[v];
edge2[cnt].to=u;
edge2[cnt].val=w;
head2[v]=cnt;
}
int Astar(int s,int t,int k)
{
priority_queue<node>Q;
if(s==t) k++;
int cnt=;
if(dist[s]==M) return -;
node a,tmp;
a.to=s;
a.g=;
a.f=a.g+dist[a.to];
Q.push(a);
while(!Q.empty())
{
node now=Q.top();Q.pop();
if(now.to==t) cnt++;
if(cnt==k) return now.g;
for(int i=head1[now.to];i;i=edge1[i].next)
{
int v=edge1[i].to;
tmp.to=v;
tmp.g=now.g+edge1[i].val ;
tmp.f=tmp.g+dist[tmp.to];
Q.push(tmp);
}
}
return -;
}
inline void init()
{
cnt=;
memset(head1,,sizeof(head1));
memset(head2,,sizeof(head2));
}
int main()
{
for(int s,t,k;cin>>n>>m;)
{
init();
for(int x,y,z;m--;)
{
cin>>x>>y>>z;
ins(x,y,z);
}
cin>>s>>t>>k;
spfa(t);
int ans=Astar(s,t,k);
cout<<ans<<endl;
}
return ;
}

POJ 2449 Remmarguts' Date的更多相关文章

  1. poj 2449 Remmarguts' Date(第K短路问题 Dijkstra+A*)

    http://poj.org/problem?id=2449 Remmarguts' Date Time Limit: 4000MS   Memory Limit: 65536K Total Subm ...

  2. poj 2449 Remmarguts' Date (k短路模板)

    Remmarguts' Date http://poj.org/problem?id=2449 Time Limit: 4000MS   Memory Limit: 65536K Total Subm ...

  3. 图论(A*算法,K短路) :POJ 2449 Remmarguts' Date

    Remmarguts' Date Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 25216   Accepted: 6882 ...

  4. poj 2449 Remmarguts' Date 第k短路 (最短路变形)

    Remmarguts' Date Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 33606   Accepted: 9116 ...

  5. POJ 2449 Remmarguts' Date (第k短路径)

    Remmarguts' Date Time Limit: 4000MS   Memory Limit: 65536K Total Submissions:35025   Accepted: 9467 ...

  6. poj 2449 Remmarguts' Date K短路+A*

    题目链接:http://poj.org/problem?id=2449 "Good man never makes girls wait or breaks an appointment!& ...

  7. POJ 2449 - Remmarguts' Date - [第k短路模板题][优先队列BFS]

    题目链接:http://poj.org/problem?id=2449 Time Limit: 4000MS Memory Limit: 65536K Description "Good m ...

  8. poj 2449 Remmarguts' Date(K短路,A*算法)

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u013081425/article/details/26729375 http://poj.org/ ...

  9. K短路模板POJ 2449 Remmarguts' Date

      Time Limit: 4000MS   Memory Limit: 65536K Total Submissions:32863   Accepted: 8953 Description &qu ...

随机推荐

  1. java枚举类Enum方法简介(valueof,value,ordinal)

    Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class,   它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口.   当我们在声明一个enum类型时,我们应该注意到en ...

  2. java集合框架之Collection

    参考http://how2j.cn/k/collection/collection-collection/366.html Collection是 Set List Queue和 Deque的接口Qu ...

  3. [工具分享]wingide 6 算号代码keygen

    import string import random import sha BASE16 = '0123456789ABCDEF' BASE30 = '123456789ABCDEFGHJKLMNP ...

  4. cocos2dx-lua绑定之代码编辑器

    转自:http://blog.csdn.net/wtyqm/article/details/9346863 享受脚本语言灵活.更新方便.免于编译的好处,但也不能忍受离开那些方便的IDE特性(跳转.自动 ...

  5. 336. Palindrome Pairs(can't understand)

    Given a list of unique words, find all pairs of distinct indices (i, j) in the given list, so that t ...

  6. HTTP请求信息和响应信息的格式

    请求: (1)请求行信息 Request URL: 发起请求的路径 Request Method:请求的方式(get  post  head put  delete  trace  options等) ...

  7. Unity3D调用摄像头,画面为翻转的问题

    http://blog.csdn.net/a117653909/article/details/16119907 Unity3D中新建一个工程,加一个Plane,新建一个C# 脚本,调用摄像头,不过显 ...

  8. P4827 [国家集训队] Crash 的文明世界(第二类斯特林数+树形dp)

    传送门 对于点\(u\),所求为\[\sum_{i=1}^ndis(i,u)^k\] 把后面那堆东西化成第二类斯特林数,有\[\sum_{i=1}^n\sum_{j=0}^kS(k,j)\times ...

  9. 大数据技术之_27_电商平台数据分析项目_02_预备知识 + Scala + Spark Core + Spark SQL + Spark Streaming + Java 对象池

    第0章 预备知识0.1 Scala0.1.1 Scala 操作符0.1.2 拉链操作0.2 Spark Core0.2.1 Spark RDD 持久化0.2.2 Spark 共享变量0.3 Spark ...

  10. day04 基本类型包装类