3040: 最短路(road)
来源:互联网 发布:java泛型t 编辑:程序博客网 时间:2024/05/21 13:22
题目链接
题目大意:求点1到点N的最短路
题解:用pbds里的堆优化……
我的收获:get姿势
#include<iostream>#include<cstdio>#include<cstring>#include<ext/pb_ds/priority_queue.hpp>#define ll long long#define pa pair<ll,int>#define llinf 9000000000000000000LLusing namespace std;using namespace __gnu_pbds;typedef __gnu_pbds::priority_queue<pa,greater<pa>,pairing_heap_tag > heap;int n,m,cnt,last[1000005];int T,rxa,rxc,rya,ryc,rp;heap::point_iterator id[1000005];int x,y,z;ll dis[1000005];struct data{int to,next,v;}e[10000005];inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}void insert(int u,int v,int w){ e[++cnt].to=v;e[cnt].next=last[u];last[u]=cnt;e[cnt].v=w;}void dijkstra(){ heap q; for(int i=1;i<=n;i++)dis[i]=llinf; dis[1]=0;id[1]=q.push(make_pair(0,1)); while(!q.empty()) { int now=q.top().second;q.pop(); for(int i=last[now];i;i=e[i].next) if(e[i].v+dis[now]<dis[e[i].to]) { dis[e[i].to]=e[i].v+dis[now]; if(id[e[i].to]!=0) q.modify(id[e[i].to],make_pair(dis[e[i].to],e[i].to)); else id[e[i].to]=q.push(make_pair(dis[e[i].to],e[i].to)); } }}int main(){ n=read();m=read(); T=read();rxa=read();rxc=read();rya=read();ryc=read();rp=read(); int a,b; for(int i=1;i<=T;i++) { x=((ll)x*rxa+rxc)%rp; y=((ll)y*rya+ryc)%rp; a=min(x%n+1,y%n+1); b=max(y%n+1,y%n+1); insert(a,b,100000000-100*a); } for(int i=1;i<=m-T;i++) { x=read(),y=read(),z=read(); insert(x,y,z); } dijkstra(); printf("%lld",dis[n]); return 0;}
阅读全文
0 0
- 3040: 最短路(road)
- 3040: 最短路(road)
- 【BZOJ 3040】 最短路(road)
- *bzoj 3040 最短路 (road) 题解
- 【bzoj3040】最短路(road)
- bzoj3040: 最短路(road)
- 【bzoj3040】最短路(road)
- Reverse a Road 最短路
- BZOJ3040最短路(road)
- BZOJ2750[HAOI2012]Road 最短路
- BZOJ 3040 最短路(road) Pairing-Heap优化Dijkstra
- BZOJ 3040 最短路(road) 堆优化Dijkstra
- [BZOJ 3040] 最短路(road) · 堆优化dijkstra
- bzoj 3040: 最短路(road)(堆优化dijkstra)
- 【Dijkstra堆优化】【BZOJ 3040】 最短路(road)
- find the safest road(floyd最短路)
- 最短路-find the safest road
- find the safest road hdu1596 最短路
- 机智的图灵机器人
- PID控制及位置式与增量式区别
- 每天学一点Swift----闭包(二)
- c++initializer_list详解
- Struts2 源码分析——调结者(Dispatcher)之action请求
- 3040: 最短路(road)
- ATOM编辑器
- [计蒜客 15504 百度的科学计算器(简单)]表达式求值
- linux 常见的命名
- Struts2 源码分析——调结者(Dispatcher)之准备工作
- Java内存模型之happens-before
- 蓝桥杯--算法练习:操作格子(线段树)
- MyBatis学习笔记——一对一,多对一
- 转载:tomcat+ssh 启动 加载的顺序。