ACM-ICPC 2018 沈阳赛区网络预赛 D. Made In Heaven(第k短路模板)
求第k短路模板
先逆向求每个点到终点的距离,再用dij算法,不会超时(虽然还没搞明白为啥。。。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<queue>
#include<vector>
#include<string.h>
#include<cstring>
#include<algorithm>
#include<set>
#include<map>
#include<fstream>
#include<cstdlib>
#include<ctime>
#include<list>
#include<climits>
#include<bitset>
#include<random>
#include <ctime>
#include <cassert>
#include <complex>
#include <cstring>
#include <chrono>
using namespace std;
#define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define fopen freopen("input.in", "r", stdin);freopen("output.in", "w", stdout);
#define left asfdasdasdfasdfsdfasfsdfasfdas1
#define tan asfdasdasdfasdfasfdfasfsdfasfdas
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
typedef long long ll;
typedef unsigned int un;
const int desll[][]={{,},{,-},{,},{-,}};
const int mod=1e9+;
const int maxn=1e3+;
const int maxm=1e5+;
const double eps=1e-;
int n,k,m;
int ar[maxn];
int head[maxn],sz,rehead[maxn];
bool vis[maxn];
int dis[maxn];
struct node
{
int b,nex,c;
}no[maxn*],reno[maxn*];
void add(int a,int b,int c)
{
no[sz].b=b;
no[sz].c=c;
no[sz].nex=head[a];
head[a]=sz;
reno[sz].b=a;
reno[sz].c=c;
reno[sz].nex=rehead[b];
rehead[b]=sz++;
}
struct state{
int all,pre,v;
state(int a,int b,int c){
all=a;pre=b;v=c;
}
state(){ }
bool operator<(const state& s)const{
return all>s.all;
}
};
priority_queue<state> qu;
void init(int s,int e)
{
memset(vis,,sizeof(vis));
memset(dis,-,sizeof(dis));
queue<int> qu;
qu.push(e);vis[e]=;
dis[e]=;
while(qu.size()){
int x=qu.front();
qu.pop();
vis[x]=;
for(int i=rehead[x];i!=-;i=reno[i].nex){
int v=reno[i].b;
if(dis[v]==- || dis[v]>dis[x]+reno[i].c){
dis[v]=dis[x]+reno[i].c;
if(vis[v]==){
vis[v]=;
qu.push(v);
}
}
}
}
}
int main()
{
while(scanf("%d%d",&n,&m)!=EOF){
int s,e,k,t;
scanf("%d%d%d%d",&s,&e,&k,&t);
memset(head,-,sizeof(head));
memset(rehead,-,sizeof(rehead));sz=;
for(int i=;i<m;i++){
int a,b,c;scanf("%d%d%d",&a,&b,&c);
add(a,b,c);
}
int ans=;
init(s,e);
//for(int i=1;i<=n;i++)cout<<dis[i]<<" ";cout<<endl;
if(dis[s]==-)ans=-;
else{
while(qu.size())qu.pop();
qu.push(state(dis[s],,s));
state mid;
int ins=;
while(qu.size()){
mid = qu.top();
qu.pop();
if(mid.v==e){
ins++;
if(ins==k){
ans=mid.all;
break;
}
}
for(int i=head[mid.v];i!=-;i=no[i].nex){
int v=no[i].b;
qu.push(state(mid.pre+no[i].c+dis[v],mid.pre+no[i].c,v));
}
}
}
if(ans!=- && ans<=t)printf("yareyaredawa\n");
else printf("Whitesnake!\n");
}
return ;
}
ACM-ICPC 2018 沈阳赛区网络预赛 D. Made In Heaven(第k短路模板)的更多相关文章
- 图上两点之间的第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短路)
题意:求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 沈阳赛区网络预赛-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. ...
- 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 ...
随机推荐
- 雪碧图background-position的rem用法
background的雪碧图配合rem就正常写即可,要加上background-size,大小为sprites的原图尺寸,宽高为一帧的尺寸.例如: .player{ width: 2.32rem; / ...
- org.json与json-lib的区别(补充 FastJson)
org.json 是JSON国际组织官方推出的标准json解析方案,已经被 android sdk 纳入到标准内置类库,依赖项少,但直至API17版本SDK中,仅支持JSONObject与JSONAr ...
- C#语法糖大汇总【转发】
首先需要声明的是“语法糖”这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换:而且可以提高开发编码的效率,在性能上也不会带来损失.这让java开发人员羡慕不已,呵呵. 1. ...
- 正确答案 [Hash/枚举]
正确答案 题目描述 小H与小Y刚刚参加完UOIP外卡组的初赛,就迫不及待的跑出考场对答案. "吔,我的答案和你都不一样!",小Y说道,"我们去找神犇们问答案吧" ...
- [hdu 1398]简单dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1398 看到网上的题解都是说母函数……为什么我觉得就是一个dp就好了,dp[i][j]表示只用前i种硬币 ...
- region xx not deployed on any region server
ERROR: Region { meta => month_hotstatic,860010-2288000000_201405_5_exit_00000047486,1400144486405 ...
- vue2学习篇一 $mount()手动挂载
$mount()手动挂载 //当Vue实例没有el属性时,则该实例尚没有挂载到某个dom中: //假如需要延迟挂载,可以在之后手动调用vm.$mount()方法来挂载.例如: new Vue({ // ...
- es6+最佳入门实践(5)
5.对象扩展 5.1.对象简写 在es5中,有这样一种写法 var name = "xiaoqiang"; var age = 12; var obj = { name : nam ...
- 【BZOJ2663】灵魂宝石 [二分]
灵魂宝石 Time Limit: 5 Sec Memory Limit: 128 MB[Submit][Status][Discuss] Description “作为你们本体的灵魂,为了能够更好的 ...
- Bzoj4197 寿司晚宴
Description 为了庆祝 NOI 的成功开幕,主办方为大家准备了一场寿司晚宴.小 G 和小 W 作为参加 NOI 的选手,也被邀请参加了寿司晚宴. 在晚宴上,主办方为大家提供了 n−1 种不同 ...