摘要: 题解 a为b的前缀,只需要设置两个指针即可,l1指向a中当前需要比较的字符,l2指向b中当前字符;如果a[l1]==b[l2]则 l1++,l2++ 否则 l2++。 code #include<bits/stdc++.h> using namespace std; const int N=2e5+ 阅读全文
posted @ 2024-05-03 22:34 黑屿白 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 这题乍一看好像是一道最小生成树的模板题,但如果直接找模板打会发现WA。 仔细一看这题是有向图的最小生成树,可以直接套朱刘算法,but,我还不会······ 直接套模板的反例 3 3 2 1 1 2 5 1 3 2 2 3 1 所以我们再分析题目,发现只要把山的高度设为第一优先级,边的 阅读全文
posted @ 2024-05-03 18:40 黑屿白 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 这题我采用了带权并查集的做法,0代表两囚犯处于监狱,1代表两囚犯不同监狱。 根据题意,我们想让冲突值尽可能的小,那么我们要先把仇恨值大的两罪犯放在不同监狱;即按仇恨值从大到小的去判断每条仇恨信息。(贪心思想) code #include<bits/stdc++.h> using na 阅读全文
posted @ 2024-05-03 18:29 黑屿白 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 KMP算法的应用。 我们知道KMP算法中NEXT数组是当前位置除外的最大前后缀长度。 直接抛出结论:ans=cnt-Next[n] 证明过程 code #include<bits/stdc++.h> using namespace std; const int N=1e6+5; in 阅读全文
posted @ 2024-05-03 18:17 黑屿白 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 带权并查集的应用,普通的并查集只能表示结点间的一种关系(如同一集合中的都是朋友)。而带权并查集的结点权值表示该结点与根结点的关系。相对应,带权并查集的路径压缩也复杂了一点。 code #include<bits/stdc++.h> using namespace std; const 阅读全文
posted @ 2024-05-03 18:07 黑屿白 阅读(22) 评论(0) 推荐(0) 编辑