bzoj3040最短路 road dij+heap
来源:互联网 发布:淘宝联盟手机怎么推广 编辑:程序博客网 时间:2024/05/24 03:30
tmd这题的空间卡的我蛋都碎了。。
1e6的点,1e7的边,我开3个1e7的数组就MLE?你tm有本事再开小点?
。。经历了从优先队列——>stl配对堆——>斐波那契堆(手写)——>手写配对堆的过程。。tmd一个dij我写了一晚上我也是醉了。。
最后还是得用hzwer的STL配对堆,,空间能开的再走心一点?
#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
- bzoj3040最短路 road dij+heap
- 【bzoj3040】最短路(road)
- bzoj3040: 最短路(road)
- 【bzoj3040】最短路(road)
- BZOJ3040最短路(road)
- [BZOJ3040][STL配对堆]最短路(road)
- hdu2544最短路dij+stl 实现heap
- [BZOJ3040]最短路
- [BZOJ3040]最短路
- CSU 1808 地铁【思维建图+最短路Dij+Heap】
- zoj2797_最短路dij
- Dij二级最短路
- dij最短路 变形
- POJ1062->最短路Dij
- [bzoj3040]最短路 挖坑于此,以后写
- BZOJ 3040 最短路(road) Pairing-Heap优化Dijkstra
- poj 3439(dij最短路)
- hdu 2544 最短路 (dij)
- 快速排序
- C++has-a关系
- Android MTK 去掉 Setting 中 Wifi 和 蓝牙
- 关于eclipse Unresolved import ***(models)错误的解决
- 关于vs中出现lnk2019和lnk1120错误
- bzoj3040最短路 road dij+heap
- ZigBee网络建立过程中数据传输流程分析(一)
- Java 多线程(四)——线程同步(synchronized、ReentrantLock)
- 【工作点滴】——网页测试利器Postman
- Train Problem I HDU
- C++ 中使用伪随机数
- java中newInstance()和new()
- POJ3037
- Git常用命令