博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷1462通往奥格瑞玛的道路
阅读量:4316 次
发布时间:2019-06-06

本文共 2053 字,大约阅读时间需要 6 分钟。

题目:

二分答案。

为什么djkstra不行,spfa可以?

其实是自己把priority_queue写成queue了……

priority_queue竟然是从大到小排的?!

#include
#include
#include
#include
#define ll long longusing namespace std;const int N=1e5+5,M=5e5+5;int n,m,head[N],xnt;ll b,v[N],l,r,ans=-1,dis[N];bool vis[N];struct Edge{ int next,to;ll w,c; Edge(int n=0,int t=0,ll w=0,ll c=0):next(n),to(t),w(w),c(c) {}}edge[M<<1];struct Node{ int bh;ll c; Node(int b=0,ll c=0):bh(b),c(c) {} bool operator <(const Node &a)const {
return c
q; dis[1]=0;q.push(Node(1,0)); while(q.size()) { int k=q.front().bh;q.pop(); while(q.size()&&vis[k])k=q.front().bh,q.pop(); if(vis[k])break;vis[k]=1; for(int i=head[k],v;i;i=edge[i].next) {// if(edge[i].c<=mid)printf("1");// if(dis[v=edge[i].to]>dis[k]+edge[i].w)printf("2");// if(dis[k]+edge[i].w<=b)printf("3");printf("v=%d\n",v); if(edge[i].c<=mid&&dis[v=edge[i].to]>dis[k]+edge[i].w&&dis[k]+edge[i].w<=b) {dis[v]=dis[k]+edge[i].w;q.push(Node(v,dis[v]));if(v==n)return true;} } } return false;}bool spfa(ll mid){ memset(dis,11,sizeof dis); memset(vis,0,sizeof vis); queue
q; q.push(1);dis[1]=0;vis[1]=1; while(q.size()) { int k=q.front();q.pop();vis[k]=0; for(int i=head[k],v;i;i=edge[i].next) if(edge[i].c<=mid&&dis[v=edge[i].to]>dis[k]+edge[i].w&&dis[k]+edge[i].w<=b) { dis[v]=dis[k]+edge[i].w; if(!vis[v])vis[v]=1,q.push(v); if(v==n)return true; } } return false;}int main(){// freopen("洛谷1462#8.in","r",stdin); scanf("%d%d%lld",&n,&m,&b);int x,y;ll z; for(int i=1;i<=n;i++)scanf("%lld",&v[i]),r=max(r,v[i]); for(int i=1;i<=m;i++) { scanf("%d%d%lld",&x,&y,&z); add(x,y,z); }// printf("l=%lld r=%lld\n",l,r); while(l<=r) { ll mid=((l+r)>>1); if(spfa(mid))ans=mid,r=mid-1; else l=mid+1; } if(ans==-1)printf("AFK"); else printf("%lld",ans); return 0;}

 

转载于:https://www.cnblogs.com/Narh/p/8922673.html

你可能感兴趣的文章
Array.of使用实例
查看>>
【Luogu】P2498拯救小云公主(spfa)
查看>>
如何获取网站icon
查看>>
几种排序写法
查看>>
java 多线程的应用场景
查看>>
dell support
查看>>
转:Maven项目编译后classes文件中没有dao的xml文件以及没有resources中的配置文件的问题解决...
查看>>
MTK android 设置里 "关于手机" 信息参数修改
查看>>
单变量微积分笔记6——线性近似和二阶近似
查看>>
补几天前的读书笔记
查看>>
HDU 1829/POJ 2492 A Bug's Life
查看>>
CKplayer:视频推荐和分享插件设置
查看>>
CentOS系统将UTC时间修改为CST时间
查看>>
redis常见面试题
查看>>
导航控制器的出栈
查看>>
玩转CSS3,嗨翻WEB前端,CSS3伪类元素详解/深入浅出[原创][5+3时代]
查看>>
iOS 9音频应用播放音频之播放控制暂停停止前进后退的设置
查看>>
Delphi消息小记
查看>>
HNOI2016
查看>>
JVM介绍
查看>>