四川大学874算法大题笔记

  • 2015
  • 2016

2015


若一个结点有右子树,则后继结点就是左子树的最左边的结点
若一个结点无右子树,则就往上找,直到往上找的那个结点为他父亲的左儿子,则该父亲为后继结点,否则为NULL

class Node {public:int data;Node* left;Node* right;Node* parent;Node(int da) {data = da;}
};
Node* getSucessionNode(Node* node) {if (node == NULL)return NULL;if (node->right != NULL) {//有右子树,就往下寻找最左侧的结点return getLeftMost(node);}else {//无右子树,就往上串Node* parent = node->parent;while (parent != NULL && parent->left != node) {//当前结点有父亲且是父亲的左儿子node = parent;parent = parent->parent;}return parent;}
}
Node* getLeftMost(Node* head) {if (head == NULL)return NULL;while (head->left != NULL) {//一直往左找左儿子head = head->right;}return head;
}
**/

2016

G=(V,E)是赋权有向图,其中一个顶点为s。每条边的权值均为取自{0,1,…,K}的数。试设计算法,计算由s到其他顶点的最短路径,使算法时间复杂性达到O((V+E)logK)。


void down(int x)
{x<<=1;if (x>t) return;if (x<t&&d[s[x+1]]<d[s[x]]) x++;if (d[s[x]]>=d[s[x>>1]]) return;swap(s[x],s[x>>1]);swap(p[s[x]],p[s[x>>1]]);down(x);
}
void up(int x)
{if (x==1||d[s[x>>1]]<=d[s[x]]) return;swap(s[x],s[x>>1]);swap(p[s[x]],p[s[x>>1]]);up(x>>1);
}
void dijkstra()
{int i,x,k;t=s[1]=1;for (i=2;i<=n;i++) d[i]=oo;while (t){x=s[1];s[1]=s[t--];p[s[1]]=1;p[x]=-1;down(1);for (i=first[x];i;i=next[i]){k=v[i];if (p[k]==-1) continue;if (!p[k]){s[++t]=k;p[k]=t;}if (d[k]>d[x]+w[i]){d[k]=d[x]+w[i];up(p[k]);}}}
}

相关刷题笔记博客
竞赛常用模板整理(ACM/ICPC/CCSP)
常见图论优化
Leetcode算法刷题笔记1-链表
Leetcode算法刷题笔记2-栈、队、堆
Leetcode算法刷题笔记3-递归与回溯
Leetcode算法刷题笔记4-贪心
Leetcode算法刷题笔记5-二叉树
Leetcode算法刷题笔记6-图
Leetcode算法刷题笔记7-动态规划
Leetcode算法刷题笔记8-二分查找

四川大学874算法大题笔记相关推荐

  1. Github最强算法刷题笔记.pdf

    资料一 昨晚逛GitHub,无意中看到一位大佬(https://github.com/halfrost)的算法刷题笔记,感觉发现了宝藏!有些小伙伴可能已经发现了,但咱这里还是忍不住安利一波,怕有些小伙 ...

  2. 发现一位大佬的算法刷题笔记PDF

    昨晚逛GitHub,无意中看到一位大佬(https://github.com/halfrost)的算法刷题笔记,感觉发现了宝藏!有些小伙伴可能已经发现了,但咱这里还是忍不住安利一波,怕有些小伙伴没有看 ...

  3. 经典算法刷题笔记pdf

    昨晚逛GitHub,无意中看到一位大佬(https://github.com/halfrost)的算法刷题笔记,感觉发现了宝藏!有些小伙伴可能已经发现了,但咱这里还是忍不住安利一波,怕有些小伙伴没有看 ...

  4. 深度优先搜索dfs算法刷题笔记【蓝桥杯】

    其实网上已经有不少dfs的算法笔记,但我之所以还再写一篇,主要是因为我目前见到的笔记,都有些太偏向理论了. 对于基础薄弱的或是没有基础的人(like me),有点不合适,因为看了,也不能说自己会了. ...

  5. 字节大老耗时5年总结的算法刷题笔记(全彩漫画版)

    前言 王国维先生在<人间词话>中写道:古今之成大事业.大学问者,必经过三种境界:"昨夜西风凋碧树.独上高楼,望尽天涯路."此第一境也."衣带渐宽终不悔,为伊消 ...

  6. 一夜登顶GitHub!字节内网数据结构与算法刷题笔记,看完直呼卧槽

    网络上流传着一句段子"程序员两条腿,一条是算法,一条是英文,想跑的更远,这两条腿都不能弱".英文,我们暂且不谈,我们先来谈谈算法. 算法之难,在于将精巧的逻辑,通过合适的数据结构, ...

  7. 【c++算法刷题笔记】——洛谷2

    1. 洛谷练习--P1579 哥德巴赫猜想(升级版) 题目描述: 现在请你编一个程序验证哥德巴赫猜想. 先给出一个奇数n,要求输出3个质数,这3个质数之和等于输入的奇数. 输入格式: 仅有一行,包含一 ...

  8. PV操作考研大题笔记

    PV操作大题 2019真题题解 PV操作大题 PV操作知识结构 哲学家进餐问题 问题描述: 解法1:限制最多可以访问资源的人数 解法1优化 解法2:互斥访问资源(上锁) 解法二优化 PV操作知识结构 ...

  9. 【c++算法刷题笔记】——洛谷1

    2020/2/14-2/16 1. 循环提取一个数的每一位数字 while (d > 0) //d=0跳出循环 {x=d%10; //x每次为d的个位数 d = d / 10; //相当于d每次 ...

最新文章

  1. vibe前景提取算法示例代码
  2. SharedPreferences小细节
  3. Python 面向对象 基础
  4. 【干货】连交换机的攻击、防御都不懂,还做什么网络工程师
  5. PBOC中文件结构,文件类型解析
  6. 网站后台中对html标签的处理
  7. nodejs,express链式反应
  8. html5同心圆代码,HTML5/Canvas 鼠标跟随的同心圆
  9. jquery获取前一个月日期
  10. Myeclipse学习总结(11)——Eclipse中设置Java/Css/Html/Jsp换行长度
  11. c#基础知识——main
  12. 计算机一级仿宋gb2312,2016年计算机一级Office考试题(带答案)
  13. Camera:双目成像原理
  14. python文件内容倒序_python倒序读取文件tail方式
  15. apmserv mysql,APMServ MySQL 1577错误解决方法
  16. python中的高级特性
  17. Pylint同时屏蔽多个报错信息
  18. 海康威视人脸、指纹一体机SDK封装 for PowerBuilder 说明
  19. Day 22 学习分享 - 泛型和学生管理系统项目进阶
  20. Docker学习笔记-快速上手笔记(保姆级)

热门文章

  1. java车架公模,带你了解碳纤维车架的制造过程
  2. taro生命周期详解
  3. UE4项目发布局相关设置
  4. 可以搭赠鸿蒙系统的手表,4.3英寸屏幕有点小!超大屏智能手机盘点
  5. RISC-V常用指令学习笔记
  6. 评价目标检测的方法map 新方法 TIDE
  7. 基于JSP的餐饮管理系统的设计与实现
  8. 全面剖析FLASH在线大头贴
  9. JAVA程序实现电影源代码的世界创建
  10. 大名鼎鼎又臭名昭著的消费组和重平衡