题目大意:最短路。

思路:最短路。

贴一份比较高效的堆优化Dij模板吧。

CODE:

#include

#include

#include

#include

#define _MAX 1000010

#define MAX 10000010

using namespace std;

#define min(a,b) ((a) < (b) ? a:b)

long long f[_MAX];

struct Heap{

int num[_MAX],pos[_MAX],size;

void PushUp(int p) {

while(p > 1) {

if(f[num[p]] < f[num[p >> 1]]) {

swap(num[p],num[p >> 1]);

swap(pos[num[p]],pos[num[p >> 1]]);

p >>= 1;

}

elsebreak;

}

}

void Insert(long long x) {

num[++size] = x;

pos[x] = size;

PushUp(size);

}

void Pop() {

pos[num[1]] = 0;

num[1] = num[size--];

if(size)pos[num[1]] = 1;

int now = 2;

while(now < size) {

if(f[num[now + 1]] < f[num[now]])

++now;

if(f[num[now]] < f[num[now >> 1]]) {

swap(num[now],num[now >> 1]);

swap(pos[num[now]],pos[num[now >> 1]]);

now <<= 1;

}

elsebreak;

}

}

}heap;

int points,edges;

long long T,rxa,rxc,rya,ryc,rp;

int head[_MAX],total;

int next[MAX],aim[MAX],length[MAX];

inline void Add(int x,int y,int len)

{

next[++total] = head[x];

aim[total] = y;

length[total] = len;

head[x] = total;

}

void Dijkstra()

{

memset(f,0x3f,sizeof(f));

f[1] = 0;

for(int i = 1; i <= points; ++i)

heap.Insert(i);

while(heap.size) {

int x = heap.num[1]; heap.Pop();

for(int i = head[x]; i; i = next[i])

if(f[aim[i]] > f[x] + length[i])

f[aim[i]] = f[x] + length[i],heap.PushUp(heap.pos[aim[i]]);

}

}

int main()

{

cin >> points >> edges;

cin >> T >> rxa >> rxc >> rya >> ryc >> rp;

int x = 0,y = 0,z = 0;

int a,b;

for(int i = 1; i <= T; ++i) {

x = ((long long)x * rxa + rxc) % rp;

y = ((long long)y * rxa + rxc) % rp;

a = min(x % points + 1,y % points + 1);

b = y % points + 1;

if(a != b)Add(a,b,1e8 - 100 * a);

}

for(int i = T + 1; i <= edges; ++i) {

scanf("%d%d%d",&x,&y,&z);

Add(x,y,z);

}

Dijkstra();

cout << f[points] << endl;

return 0;

}

dij算法堆优化_BZOJ 3040 最短路(road) 堆优化Dijkstra | 学步园相关推荐

  1. bzoj 3040: 最短路(road)(堆优化dijkstra)

    3040: 最短路(road) Time Limit: 60 Sec  Memory Limit: 200 MB Submit: 2811  Solved: 933 [Submit][Status][ ...

  2. 图论:dij算法优化:双端队列及详细证明

    dij原来的写法请移步这里 首先,让我们举一个洛谷中的情境 这题中,我们可以二分mid答案,小于等于mid的边权是0,大于的是1,再计算最短路是否<=k: 那么在这样边权只有0和1的时候,dij ...

  3. 【PSO运输优化】基于MATLAB的PSO运输优化算法的仿真

    1.软件版本 matlab2013b 2.本算法理论知识 问题是,假设我有一个收集轨道,上面有5个采集堆,这5个采集堆分别被看作一个4*20的矩阵(下面只有4*10),每个模块(比如:A31和A32的 ...

  4. dij算法为什么不能处理负权,以及dij算法变种

    对于上面那张图,是可以用dij算法求解出正确答案,但那只是巧合而已. 我们再看看下面这张图. dist[4] 是不会被正确计算的. 因为dij算法认为从队列出来的点,(假设为u)肯定是已经求出最短路的 ...

  5. 【蓝桥杯 路径 python】Dij算法

    题目来源: P1553 - [蓝桥杯2021初赛] 路径 - New Online Judge (ecustacm.cn) 经过两天的学习总算搞定了python的Dij算法,不得不说python的库函 ...

  6. DL之NN:NN算法(本地数据集50000张训练集图片)进阶优化之三种参数改进,进一步提高手写数字图片识别的准确率

    DL之NN:NN算法(本地数据集50000张训练集图片)进阶优化之三种参数改进,进一步提高手写数字图片识别的准确率 导读 上一篇文章,比较了三种算法实现对手写数字识别,其中,SVM和神经网络算法表现非 ...

  7. 推荐算法炼丹笔记:科学调参在模型优化中的意义

    作者:九羽 ,公众号:炼丹笔记 基于Embedding的推荐算法模型一直是近几年研究的热门,在各大国际会议期刊都能看到来自工业界研究与实践的成果.MF(Matrix Factorization)作为传 ...

  8. 一步步优化JVM四:决定Java堆的大小以及内存占用

    到目前为止,还没有做明确的优化工作.只是做了初始化选择工作,比如说:JVM部署模型.JVM运行环境.收集哪些垃圾回收器的信息以及需要遵守垃圾回收原则.这一步将介绍如何评估应用需要的内存大小以及Java ...

  9. 【微电网优化】基于粒子群算法求解热电联供型微电网经济运行优化问题含Matlab源码

    1 简介 面对全球环境污染和能源危机的双重压力,世界各国将焦点转向太阳能.风能等清洁可再生能源.微电网是组织和利用可再生能源发电的重要途径之一.本文以微电网的能量优化调度为研究对象,建立了微电网能量优 ...

最新文章

  1. iOS手势操作简介(四)
  2. 2015年的Java –重大事件
  3. css 图片自适应_img图片自适应object-fit
  4. LeetCode 38. Count and Say
  5. 现在这个时代变了,区块链,数字货币才是最火的项目
  6. 用好这个数据分析工具,BI平台建设少费一半力
  7. UGUI自定义组件之Image根据Text大小自动调整
  8. JQuery简要介绍(转)
  9. 证据理论(2)—— 多种合成公式
  10. 我爱淘冲刺阶段站立会议2每天任务4
  11. 企业邮箱是什么?企业邮箱有什么好处?企业邮箱域名怎么设置?
  12. apicloud访问mysql_APICloud db组件
  13. 守法公民 Law Abiding Citizen (2009)
  14. Apache的性能解读
  15. 如何在Windows上下载java
  16. @kubernetes(k8s)pod服务探针(健康检查)及回调钩子HOOK详解
  17. phonegap 安装及环境配置(简介)
  18. 微软拼音输入法繁体转简体
  19. Force DAO 任意铸币攻击事件复盘分析 | 零时科技
  20. AI 自动研发机器学习系统,DeepMind 让算法学习强化学习

热门文章

  1. 逻辑回归与线性回归的区别
  2. LeetCode-226. 翻转二叉树
  3. CSDN博客如何复制别人的文章到自己的博客(很详细,看着图片傻瓜式操作)
  4. 【idea配置】电脑死机重启后idea报错cannot load project:com.intellij.ide
  5. PHP PDO连接PostgreSQL报错 SCRAM authentication requires libpq version 10 or above in解决
  6. git提交时发现iml文件没有被排除
  7. 自定义filter中配置不被过滤的资源
  8. java行转列_Java后端面试标准:如何准备一场后端面试?
  9. java开发汉字显示不全_求java转码ISO-8859-1转UTF-8汉字显示不全补救方案?
  10. 11_python基础—函数(引用、全局、局部变量)