四川大学874算法大题笔记
四川大学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算法大题笔记相关推荐
- Github最强算法刷题笔记.pdf
资料一 昨晚逛GitHub,无意中看到一位大佬(https://github.com/halfrost)的算法刷题笔记,感觉发现了宝藏!有些小伙伴可能已经发现了,但咱这里还是忍不住安利一波,怕有些小伙 ...
- 发现一位大佬的算法刷题笔记PDF
昨晚逛GitHub,无意中看到一位大佬(https://github.com/halfrost)的算法刷题笔记,感觉发现了宝藏!有些小伙伴可能已经发现了,但咱这里还是忍不住安利一波,怕有些小伙伴没有看 ...
- 经典算法刷题笔记pdf
昨晚逛GitHub,无意中看到一位大佬(https://github.com/halfrost)的算法刷题笔记,感觉发现了宝藏!有些小伙伴可能已经发现了,但咱这里还是忍不住安利一波,怕有些小伙伴没有看 ...
- 深度优先搜索dfs算法刷题笔记【蓝桥杯】
其实网上已经有不少dfs的算法笔记,但我之所以还再写一篇,主要是因为我目前见到的笔记,都有些太偏向理论了. 对于基础薄弱的或是没有基础的人(like me),有点不合适,因为看了,也不能说自己会了. ...
- 字节大老耗时5年总结的算法刷题笔记(全彩漫画版)
前言 王国维先生在<人间词话>中写道:古今之成大事业.大学问者,必经过三种境界:"昨夜西风凋碧树.独上高楼,望尽天涯路."此第一境也."衣带渐宽终不悔,为伊消 ...
- 一夜登顶GitHub!字节内网数据结构与算法刷题笔记,看完直呼卧槽
网络上流传着一句段子"程序员两条腿,一条是算法,一条是英文,想跑的更远,这两条腿都不能弱".英文,我们暂且不谈,我们先来谈谈算法. 算法之难,在于将精巧的逻辑,通过合适的数据结构, ...
- 【c++算法刷题笔记】——洛谷2
1. 洛谷练习--P1579 哥德巴赫猜想(升级版) 题目描述: 现在请你编一个程序验证哥德巴赫猜想. 先给出一个奇数n,要求输出3个质数,这3个质数之和等于输入的奇数. 输入格式: 仅有一行,包含一 ...
- PV操作考研大题笔记
PV操作大题 2019真题题解 PV操作大题 PV操作知识结构 哲学家进餐问题 问题描述: 解法1:限制最多可以访问资源的人数 解法1优化 解法2:互斥访问资源(上锁) 解法二优化 PV操作知识结构 ...
- 【c++算法刷题笔记】——洛谷1
2020/2/14-2/16 1. 循环提取一个数的每一位数字 while (d > 0) //d=0跳出循环 {x=d%10; //x每次为d的个位数 d = d / 10; //相当于d每次 ...
最新文章
- vibe前景提取算法示例代码
- SharedPreferences小细节
- Python 面向对象 基础
- 【干货】连交换机的攻击、防御都不懂,还做什么网络工程师
- PBOC中文件结构,文件类型解析
- 网站后台中对html标签的处理
- nodejs,express链式反应
- html5同心圆代码,HTML5/Canvas 鼠标跟随的同心圆
- jquery获取前一个月日期
- Myeclipse学习总结(11)——Eclipse中设置Java/Css/Html/Jsp换行长度
- c#基础知识——main
- 计算机一级仿宋gb2312,2016年计算机一级Office考试题(带答案)
- Camera:双目成像原理
- python文件内容倒序_python倒序读取文件tail方式
- apmserv mysql,APMServ MySQL 1577错误解决方法
- python中的高级特性
- Pylint同时屏蔽多个报错信息
- 海康威视人脸、指纹一体机SDK封装 for PowerBuilder 说明
- Day 22 学习分享 - 泛型和学生管理系统项目进阶
- Docker学习笔记-快速上手笔记(保姆级)