随笔分类 - 图论
摘要:##题目链接 https://www.luogu.com.cn/problem/P3379 ##算法分析 需要尽可能的向上跳,但是两者之间不能相遇。(因为如果相遇了,那么很有可能,虽然是公共祖先,但是未必是最近的) 倍增法:“倍增”就是指跳的时候是以而不是一个一个跳,并且是从大数往小数跳。
阅读全文
摘要:补一下之前学的 这些代码都是一样的 POJ2186(英文版) = OpenJ_Bailian - 2186(英文版) = 计蒜客T2956(中文) = LibreOJ10091(中文) ##学习视频链接 https://www.bilibili.com/video/av60380978?p=1 (可
阅读全文
摘要:题意 有头牛,序号为1-N(来自不同牛场),他们要去序号为的地方参加派对,每次给出的边都是两点之间最短的。 问去+返的最长时间。(也就是来回每一头牛来回的(最短)时间里面找一个最长时间的,看清理解清楚题意!!!) 每组数据给出N、M、X,接下来M条边,是有向图。 思路 先用Dijkstr
阅读全文
摘要:##题意 (两点间有两种路径可选择,一条是花费时间,一条是增加时间,问是否存在环,使得在走过这个环后耗费时间小于等于0。) 问某个人是否可以从他所在的起点开始出发,最后回到该点,也就是说,如果可以回到该点,说明形成了一个环,说明存在负环,所以最后判断负环即可。 给出T组数据,每组数据给出n、m、w,
阅读全文
摘要:中文题。 这题我写了半个小时。。。 我是真的菜 我只想到bfs、枚举暴力、最小生成树。 dfs很关键,多练练吧。 AC代码: 1 #include<iostream> 2 #include<stdio.h> 3 #include<map> 4 #include<algorithm> 5 #inclu
阅读全文
摘要:哈夫曼树 POJ1521 https://www.cnblogs.com/OFSHK/p/12544649.html POJ3253 看一下题目,是一个模板题 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostream> 4 #inclu
阅读全文
摘要:就是题意不会太好理解和转换 最小生成树模板题 Kruskal: 1 //kruskal 2 #include<stdio.h> 3 #include<string.h> 4 #include<iostream> 5 #include<algorithm> 6 #include<queue> 7 #i
阅读全文
摘要:##AC代码 #include<stdio.h> #include<iostream> #include<queue> #include<string.h> using namespace std; #define inf 0x3f3f3f3f const int N=300; int n,matc
阅读全文
摘要:题意: 给出n个蚂蚁和苹果的坐标,对每个蚂蚁和苹果进行匹配(之间连一条线段),要求:任意两条线段不相交,输出一种方案。 思路: 因为三角形的两边之和大于第三边, 所有他们连线的所有线段和最小的时候线段一定不会相交, 所以这道题目就变成了二分图最小权值匹配,把任意两点间权值即为他们的距离,跑一遍KM即
阅读全文
摘要:##题意 有一个矩阵,问从左上角走到右下角(只能往右或者往下走),再从右下角回到左上角(只能往上或者往左),每个点只能走一次(除了左上角和右下角),问所走的格子的最大总和是多少。 ##思路 因为是矩阵形式,所以用拆点的方法,同一个点拆成两个,容量为1,因为容量为1所以每个点只能流过一次。 因为除了源
阅读全文
摘要:题意:中文题,自己看吧 思路:二分图最大匹配模板题目 之前写的二分图是vector写的,https://www.cnblogs.com/OFSHK/p/12228048.html 所以这次上一个数组写的代码, 也算是一个模板 注意一下清空和输入格式 一定要注意清空啊,不然一直WAWAWA!!!! A
阅读全文
摘要:题目链接:POJ - 1144 求割点的模板题 1 #include<stdio.h> 2 #include<iostream> 3 #include<string.h> 4 #include<algorithm> 5 #include<vector> 6 using namespace std;
阅读全文
摘要:题目链接: HDU - 1116 题意: 判断上一个单词的最后一个字母和下一个单词的第一个字母是否相同 直接暴力WA AC代码: 1 #include<iostream> 2 #include<stdio.h> 3 #include<string.h> 4 #include<vector> 5 #i
阅读全文
摘要:题目链接: POJ - 1521 题意:求哈夫曼树 输出哈夫曼树的顶点值ans(ans如果为0就输出字符串的长度len)、ans*8、len/ans 思路: 优先队列即可 AC代码: #include<stdio.h> #include<iostream> #include<string.h> #i
阅读全文
摘要:fhq平衡树 优点:码量小、好写、核心操作的代码都是复读机、支持的操作多 缺点:常数略大 可以解决LCT问题 普通Treap用来维护树的平衡的操作:树旋转 fhq平衡树的操作:分裂split和合并merge 把树反复拆开再拼上 结点信息:左右字数编号、子树大小(找排名)、值、随机索引 treap=t
阅读全文
摘要:bug一个一个找叭叭叭 AC代码: https://vjudge.net/problem/HDU-3499 看下自己写的
阅读全文
摘要:题意: 给出一个N; 接下去给出一幅N*N的图,代表每两个城市需要的税费, 接下去再给出每一个城市的税费, 之后给出x和y,求出x到y的最小税费和经过的城市(即输出路径) 样例: Sample Input 5 0 3 22 -1 4 3 0 5 -1 -1 22 5 0 9 20 -1 -1 9 0
阅读全文
摘要:POJ - 3253 样例: Sample Input 3 8 5 8 Sample Output 34 题意:看下题目Hint部分就可以了 思路:每次取所有木板中最短的两块构成一块新木板(新木板的长度等于那两块的和),将此木板放回到原来所有木板中进行比较,再选出最短的两块来,以此类推,求拼接成一整
阅读全文
摘要:PS:我觉得邻接表就是vector,可是实验室学的是邻接表是链式前向星的写法。 所以我觉得邻接表是vector的写法(但是邻接表在数据结构书上的画图有事链式前向星!?),开结构体的是链式前向星,邻接矩阵就是邻接矩阵 链式前向星代码: struct node { int to; // e[i].to
阅读全文
摘要:##HDU1710 - Binary Tree Traversals 题意:已知前序中序求后序 思路:模板题 AC代码: #include<stdio.h> #include<algorithm> #include<iostream> #include<stdio.h> #include<strin
阅读全文