ACM-ICPC 2018 沈阳赛区网络预赛-D:Made In Heaven(K短路+A*模板)
Made In Heaven
One day in the jail, F·F invites Jolyne Kujo (JOJO in brief) to play tennis with her. However, Pucci the father somehow knows it and wants to stop her. There are N spots in the jail and MM roads connecting some of the spots. JOJO finds that Pucci knows the route of the former (K−1)-th shortest path. If Pucci spots JOJO in one of these K−1 routes, Pucci will use his stand Whitesnake and put the disk into JOJO's body, which means JOJO won't be able to make it to the destination. So, JOJO needs to take the K-th quickest path to get to the destination. What's more, JOJO only has T units of time, so she needs to hurry.
JOJO starts from spot S, and the destination is numbered E. It is possible that JOJO's path contains any spot more than one time. Please tell JOJO whether she can make arrive at the destination using no more than T units of time.
Input
There are at most 50 test cases.
The first line contains two integers N and M(1≤N≤1000,0≤M≤10000). Stations are numbered from 1 to N.
The second line contains four numbers S,E,K and T ( 1≤S,E≤N, S≠E, 1≤K≤10000, 1≤T≤100000000 ).
Then M lines follows, each line containing three numbers U,V and W (1≤U,V≤N,1≤W≤1000) . It shows that there is a directed road from U-th spot to V-th spot with time W.
It is guaranteed that for any two spots there will be only one directed road from spot AA to spot BB (1≤A,B≤N,A≠B), but it is possible that both directed road <A,B><A,B> and directed road <B,A><B,A>exist.
All the test cases are generated randomly.
Output
One line containing a sentence. If it is possible for JOJO to arrive at the destination in time, output "yareyaredawa" (without quote), else output "Whitesnake!" (without quote).
样例输入
2 2
1 2 2 14
1 2 5
2 1 4
样例输出
yareyaredawa
题目来源
题意
N个点,M条边,起始点为s,结束为n,求s到n的第k短的路的长度,判断长度是否大于T,如果大于,输出“Whitesnake!”,否则输出“yareyaredawa”
这个题和POJ2449基本上一样,就多了一个和T的比较,找了模板改改就过了,点击查看模板链接。//注意输出的W是大写
AC代码
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <math.h>
#include <limits.h>
#include <map>
#include <stack>
#include <queue>
#include <vector>
#include <set>
#include <string>
#define ll long long
#define ull unsigned long long
#define ms(a) memset(a,0,sizeof(a))
#define pi acos(-1.0)
#define inf 0x7f7f7f7f
#define lson o<<1
#define rson o<<1|1
const double E=exp(1);
const int maxn=1e6+10;
const int mod=1e9+7;
using namespace std;
ll num1=0,num2=0,n,m,s,t,r,k,h1[maxn],h2[maxn],d[maxn],flag[maxn];
inline int read()
{
int X=0,w=1;
char c=getchar();
while (c<'0'||c>'9') { if (c=='-') w=-1; c=getchar(); }
while (c>='0'&&c<='9') X=(X<<3)+(X<<1)+c-'0',c=getchar();
return X*w;
}
struct node1
{
ll x,y,z,next;
}mp1[maxn],mp2[maxn];
struct node
{
ll v,c;
node(ll vv,ll cc) : v(vv),c(cc){}
friend bool operator < (node x,node y){return x.c+d[x.v]>y.c+d[y.v];}
};
inline void insert1(ll x,ll y,ll z)
{
mp1[++num1].x=x;
mp1[num1].y=y;
mp1[num1].z=z;
mp1[num1].next=h1[x];
h1[x]=num1;
}
inline void insert2(ll x,ll y,ll z)
{
mp2[++num2].x=x;
mp2[num2].y=y;
mp2[num2].z=z;
mp2[num2].next=h2[x];
h2[x]=num2;
}
void spfa()
{
queue<ll>Q;
Q.push(t);
for(int i=1;i<=n;i++)
d[i]=inf;
d[t]=0;
ms(flag);
flag[t]=1;
while(!Q.empty())
{
ll u=Q.front();
Q.pop();
flag[u]=0;
for(int i=h1[u];i;i=mp1[i].next)
{
ll v=mp1[i].y;
if(d[v]>d[u]+mp1[i].z)
{
d[v]=d[u]+mp1[i].z;
if(!flag[v])
{
flag[v]=1;
Q.push(v);
}
}
}
}
}
ll astar(){
if(d[s]==inf)
return -1;
priority_queue<node>p;
ll cnt=0;p.push(node(s,0));
while(!p.empty())
{
node u=p.top();p.pop();
if(u.v==t)
{
cnt++;
if(cnt==k) return u.c;
}
for(int i=h2[u.v];i;i=mp2[i].next)
{
ll y=mp2[i].y;
p.push(node(y,u.c+mp2[i].z));
}
}
return -1;
}
int main(int argc, char const *argv[])
{
while(~scanf("%lld%lld",&n,&m))
{
s=read();t=read();k=read();r=read();
ms(h1);
num1=0;
ms(h2);
num2=0;
while(m--)
{
ll x,y,z;
x=read();y=read();z=read();
insert1(y,x,z);insert2(x,y,z);
}
spfa();
ll _=astar();
if(_==-1||_>r)
printf("Whitesnake!\n");
else
printf("yareyaredawa\n");
}
return 0;
}
ACM-ICPC 2018 沈阳赛区网络预赛-D:Made In Heaven(K短路+A*模板)的更多相关文章
- 图上两点之间的第k最短路径的长度 ACM-ICPC 2018 沈阳赛区网络预赛 D. Made In Heaven
131072K One day in the jail, F·F invites Jolyne Kujo (JOJO in brief) to play tennis with her. Howe ...
- ACM-ICPC 2018 沈阳赛区网络预赛 D Made In Heaven(第k短路,A*算法)
https://nanti.jisuanke.com/t/31445 题意 能否在t时间内把第k短路走完. 分析 A*算法板子. #include <iostream> #include ...
- ACM-ICPC 2018 沈阳赛区网络预赛 D. Made In Heaven(第k短路模板)
求第k短路模板 先逆向求每个点到终点的距离,再用dij算法,不会超时(虽然还没搞明白为啥... #include<iostream> #include<cstdio> #inc ...
- ACM-ICPC 2018 沈阳赛区网络预赛 D. Made In Heaven(约束第K短路)
题意:求11到nn的第kk短的路径长度,如果超过TT输出Whitesnake!Whitesnake!,否则输出yareyaredawayareyaredawa. 好无以为 , 这就是一道模板题, 当是 ...
- ACM-ICPC 2018 沈阳赛区网络预赛 K Supreme Number(规律)
https://nanti.jisuanke.com/t/31452 题意 给出一个n (2 ≤ N ≤ 10100 ),找到最接近且小于n的一个数,这个数需要满足每位上的数字构成的集合的每个非空子集 ...
- ACM-ICPC 2018 沈阳赛区网络预赛-K:Supreme Number
Supreme Number A prime number (or a prime) is a natural number greater than 11 that cannot be formed ...
- ACM-ICPC 2018 沈阳赛区网络预赛 J树分块
J. Ka Chang Given a rooted tree ( the root is node 11 ) of NN nodes. Initially, each node has zero p ...
- ACM-ICPC 2018 沈阳赛区网络预赛 K. Supreme Number
A prime number (or a prime) is a natural number greater than 11 that cannot be formed by multiplying ...
- ACM-ICPC 2018 沈阳赛区网络预赛 F. Fantastic Graph
"Oh, There is a bipartite graph.""Make it Fantastic." X wants to check whether a ...
随机推荐
- react native 入门 (1)- 环境搭建, 创建第一个Hello World
Create React Native App 是开始构建新的React Native应用程序的最简单方法.它允许您启动项目而无需安装或配置任何工具来构建本机代码 - 无需安装Xcode或Androi ...
- axios API速查表
原来jq自带ajax方法,但是近期项目用vue,在vue项目中发送ajax请求原来用vue resource,现在更推荐使用axios,因为axios和vue更配! GET 请求 // Make a ...
- xadmin后台导出时gunicorn报错ascii
django + xadmin + nginx + gunicorn部署后,xadmin后台导出model数据报错,gunicorn日志记录为:UnicodeEncodeError: 'ascii' ...
- Tomcat错误:getOutputStream() has already been called for this response
使用weblogic部署时,没有报错.客户现场使用tomcat后报错. 在tomcat下jsp中出现此错误一般都是在jsp中使用了输出流(如输出图片验证码,文件下载等),没有妥善处理好的原因.具体的原 ...
- [转载]springmvc学习之@ModelAttribute运用详解
spring学习之@ModelAttribute运用详解 链接
- 使用MYSQL数据库实现编程----第二章第三章课堂知识小总结
第二章1:创建数据库create database myschool 2.数据类型 1.整型 int 2.小数 double 精确度要求高的 ----Decimal(18,4) 2222222 ...
- java修饰符用法
public:本类可使用,子类可使用,同一包内的类可使用,不同包内的类可使用 protected:本类可使用,子类可使用(不同包内的子类也可使用),同一包内的类可使用 default(当不写修饰符时) ...
- Android : 输入设备键值从底层到应用层的映射流程
一.Android输入子系统简介: Android输入事件的源头是位于/dev/input/下的设备节点,而输入系统的终点是由WMS管理的某个窗口.最初的输入事件为内核生成的原始事件,而最终交付给窗口 ...
- 4.7 C++ dynamic_cast操作符
参考:http://www.weixueyuan.net/view/6377.html 总结: 产生这种运行期的错误原因在于static_cast强制类型转换时并不具有保证类型安全的功能,而C++提供 ...
- CentOS7安装配置Bacula yum方法
参考: https://www.baidu.com/link?url=o2QIy2YZWjsJPAFJuYFhrH3nPvtyRkSe-o5Q_FqFZ5E1EMOsIOmGeKm0HAonwHOw8 ...