[Luogu2901][USACO08MAR]牛慢跑Cow Jogging Astar K短路
题目链接:https://daniu.luogu.org/problem/show?pid=2901
Astar的方程$f(n)=g(n)+h(n)$,在这道题中我们可以反向最短路处理出$h(n)$的精确值。然后跑Astar找K次最短路就好了。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
int inline readint(){
int Num;char ch;
while((ch=getchar())<''||ch>'');Num=ch-'';
while((ch=getchar())>=''&&ch<='') Num=Num*+ch-'';
return Num;
}
int N,M,K;
int to[],ne[],w[],fir[],cnt=;
void add(int a,int b,int c){
to[++cnt]=b;
w[cnt]=c;
ne[cnt]=fir[a];
fir[a]=cnt;
}
int nto[],nne[],nw[],nfir[],ncnt=;
void nadd(int a,int b,int c){
nto[++ncnt]=b;
nw[ncnt]=c;
nne[ncnt]=nfir[a];
nfir[a]=ncnt;
}
int dis[];
bool in[];
queue <int> q;
void Spfa(){
memset(dis,/,sizeof(dis));
in[]=true;
dis[]=;
q.push();
int u;
while(!q.empty()){
int u=q.front();
q.pop();
in[u]=false;
for(int i=nfir[u];i!=-;i=nne[i]){
int v=nto[i];
if(dis[v]>dis[u]+nw[i]){
dis[v]=dis[u]+nw[i];
if(!in[v]){
in[v]=true;
q.push(v);
}
}
}
}
}
struct NODE{
int d,num;
NODE(int _d=,int _num=){
d=_d;
num=_num;
}
bool operator < (const NODE &_)const{
return d>_.d;
}
};
int ans[],rk=;
priority_queue <NODE> Q;
void Astar(){
Q.push(NODE(dis[N],N));
NODE u;
while(!Q.empty()){
u=Q.top();
Q.pop();
if(u.num==){
ans[++rk]=u.d;
if(rk==K) return;
}
for(int i=fir[u.num];i!=-;i=ne[i])
Q.push(NODE(u.d-dis[u.num]+w[i]+dis[to[i]],to[i]));
}
}
int main(){
memset(fir,-,sizeof(fir));
memset(nfir,-,sizeof(nfir));
N=readint();
M=readint();
K=readint();
for(int i=;i<=M;i++){
int a=readint(),
b=readint(),
c=readint();
add(a,b,c);
nadd(b,a,c);
}
Spfa();
Astar();
for(int i=;i<=K;i++)
if(ans[i]) printf("%d\n",ans[i]);
else puts("-1");
return ;
}
[Luogu2901][USACO08MAR]牛慢跑Cow Jogging Astar K短路的更多相关文章
- 洛谷P2901 [USACO08MAR]牛慢跑Cow Jogging
题目描述 Bessie has taken heed of the evils of sloth and has decided to get fit by jogging from the barn ...
- 洛谷 P3111 [USACO14DEC]牛慢跑Cow Jog_Sliver
P3111 [USACO14DEC]牛慢跑Cow Jog_Sliver 题目描述 The cows are out exercising their hooves again! There are N ...
- 【USACO Mar08】 奶牛跑步 A-star k短路
Description Bessie准备用从牛棚跑到池塘的方法来锻炼. 但是因为她懒,她只准备沿着下坡的路跑到池塘,然后走回牛棚. Bessie也不想跑得太远,所以她想走最短的路经. 农场上一共有M( ...
- luogu3111 [USACO14DEC]牛慢跑Cow Jog_Sliver
题目大意 有N (1 <= N <= 100,000)头奶牛在一个单人的超长跑道上慢跑,每头牛的起点位置都不同.由于是单人跑道,所有他们之间不能相互超越.当一头速度快的奶牛追上另外一头奶牛 ...
- luogu P3111 [USACO14DEC]牛慢跑Cow Jog_Sliver |贪心+模拟
有N (1 <= N <= 100,000)头奶牛在一个单人的超长跑道上慢跑,每头牛的起点位置都不同.由于是单人跑道,所有他们之间不能相互超越.当一头速度快的奶牛追上另外一头奶牛的时候,他 ...
- 洛谷P3111 [USACO14DEC]牛慢跑Cow Jog_Sliver
传送门 题目大意:n头牛在单行道n个位置,开始用不同的速度跑步. 当后面的牛追上前面的牛,后面的牛会和前面的牛以一样的速度 跑,称为一个小团体.问:ts后有多少个小团体. 题解:模拟 倒着扫一遍,因为 ...
- 洛谷 3111 [USACO14DEC]牛慢跑Cow Jog_Sliver 题解
本蒟蒻又来发题解了, 一道较水的模拟题. 题意不过多解释, 思路如下: 在最开始的时候求出每头牛在t秒的位置(最终位置 然后,如果后一头牛追上了前一头牛,那就无视它, 把它们看成一个整体. else ...
- LUOGU P3111 [USACO14DEC]牛慢跑Cow Jog_Sliver
传送门 解题思路 比较简单的一道思路题,首先假设他们没有前面牛的限制,算出每只牛最远能跑多远.然后按照初位置从大到小扫一遍,如果末位置大于等于前面的牛,那么就说明这两头牛连一块了. 代码 #inclu ...
- 洛谷P3111 [USACO14DEC]牛慢跑Cow Jog_Sliver 性质分析
Code: #include<cstdio> #include<algorithm> #include<cstring> using namespace std; ...
随机推荐
- sql server 笔记1--case、WAITFOR、TRY CATCH
一.case 转自:http://blog.csdn.net/add8849/article/details/576424 深入使用:http://blog.csdn.net/akuoma/artic ...
- [转] 买彩票的利器--gun
源链接 还在自己买彩票吗,有个现成的:GNU shuf命令. shuf -i - -n | 这样就会产生两组彩票(1~36个数字任选) 当然还可以派其他用途,比如: shuf -e clubs hea ...
- WebService(2)-XML系列之用Stax操作Xml
源代码下载:链接: http://pan.baidu.com/s/1ntL1a7R password: rwp1 本文主要讲述:利用Stax处理xml文档 一.读取xml 1.基于光标的查找 核心:X ...
- Django值中间件
1,还是那句话:写代码的逻辑遵循:简洁,重复性高,可维护性高 1.1>中间件:中间件是一种用来处理Django的请求和响应的框架级别的钩子.它是一个轻量,低级别的插件系统,用于在全局范围内改变D ...
- centos6.5 yum安装MySQL5.6
创建MySQL用户 #useradd mysql #passwd mysql #chmod u+w /etc/sudoers #vi /etc/sudoers mysql ALL=(ALL) ALL ...
- 设计模式-(8)外观(swift版)
一,概念 为子系统中的一组接口提供一个统一的接口.外观模式定义了一个更高层次的接口,这个接口使得这一子系统更加容易使用. 二,结构图 (1)SubSystem子系统类:每个子系统定义了相关功能和模块的 ...
- 更改android studio AVD 位置
- mongodb02
memcached redis : kv数据库(key/value) mongodb 文档数据库,存储的是文档(Bson->json对象二进制化后叫bson,js的二进制对象,引擎是用js实现的 ...
- Lightoj 1024 - Eid
求n个数的最小公倍数. import java.math.*; import java.io.*; import java.util.*; import java.text.*; public cla ...
- haproxy tcp 反向代理
配置如下: global log 127.0.0.1 local3 warning nbproc 1 maxconn 65535 daemon defaults log global option d ...