随笔分类 -  算法

摘要:最大公约数 欧几里德算法 结论:\(\operatorname{gcd}(a, b)=\operatorname{gcd}(b, a \bmod b)\) 。 1.证明 \(\operatorname{gcd}(a, b)\mid\operatorname{gcd}(a\bmod b, b)\): 阅读全文
posted @ 2025-01-14 21:57 bryce_yyds 阅读(21) 评论(0) 推荐(0)
摘要:点分治 点分治是一个求树上路径问题的算法,算法流程通常是:找到子树中的重心,计算重心的子树的每一个点与重心的路径的数据,接着统计整体答案。 Close Vertices 思路 很明显,这是一道点分治题目,但有两个限制条件,考虑将两个条件排序起来,双指针找第一个条件,树状数组维护第二个条件,但是同一个 阅读全文
posted @ 2024-08-20 16:52 bryce_yyds 阅读(19) 评论(0) 推荐(0)
摘要:P3376 【模板】网络最大流 思路 最大流,通过搜索在残量网络上找到增广路实现,同时要建反边,进行反悔操作。 重点说明建反边和反悔操作,反边的权值为容量减去正边的权值,所以找到这条反边存在的增广路相当于退流操作。 有两种实现方式:EK 和 Dinic。 代码 EK 点击查看代码 #include< 阅读全文
posted @ 2024-07-27 11:58 bryce_yyds 阅读(14) 评论(0) 推荐(0)
摘要:P1020 [NOIP1999 提高组] 导弹拦截 思路 设 \(dp_i\) 表示前 \(i\) 个数,最长不降子序列的长度,我们知道枚举求法的时间复杂度为 \(O(n^2)\),这是不能接受的,所以考虑二分。 设 \(f_i\) 表示所有最长不降子序列长度为 \(i\)中,它的结尾中最大的数。 阅读全文
posted @ 2024-06-29 17:02 bryce_yyds 阅读(16) 评论(0) 推荐(0)
摘要:P3313 [SDOI2014] 旅行 思路分析 给每一个宗教开一个线段树,然后树链剖分修改,查询,但空间不允许,所以只能动态开点。 代码 #include<iostream> using namespace std; inline int read(){register int x = 0, f 阅读全文
posted @ 2024-02-04 10:57 bryce_yyds 阅读(11) 评论(0) 推荐(0)
摘要:# 状压DP 状压 $DP$ 是一种基于二进制数的 $DP$。 # T1 ## 题目大意 将一个整数 $N$ 分解成若干个小整数的乘积,满足: + 分解出的整数必须来自集合 $S$。 + 分解出的整数必须互不相同,且两两互质。 求有多少种分解方法。 ## 算法分析 将 $N$ 进行质数分解,然后将集 阅读全文
posted @ 2023-05-27 12:06 bryce_yyds 阅读(22) 评论(0) 推荐(0)
摘要:简介 莫队是一种优美的暴力算法~(——by Daniel_yuan dalao)。 普通莫队 例题 例题出自: 莫队 莫队大全 [数据结构]莫队 (建议按顺序刷题~) P3901 数列找不同 分析 板子,速速切掉!!! 代码 #include<iostream> #include<cstdio> # 阅读全文
posted @ 2023-02-02 16:28 bryce_yyds 阅读(88) 评论(0) 推荐(1)
摘要:Trie 简介 将 $n$ 个字符串存储在一棵树中。每个字符代表一条边,根节点到每个单词节点经过的所有边代表了所有的字符串。 例题 P8306【模板】字典树 分析 字典树模板,建个字典树然后查询,注意要把数字和字母转换为数字下标。 代码 #include<iostream> #include<cst 阅读全文
posted @ 2023-01-30 14:32 bryce_yyds 阅读(44) 评论(0) 推荐(1)