07 2023 档案
摘要:# [1001 Alice Game](http://acm.hdu.edu.cn/showproblem.php?pid=7287) ## 题意:n个排成一排的怪物,每次可以进行两种操作 ## 1.消除长度小于等于k的连续怪物序列 ## 2.消除长度等于k的连续怪物序列并要求两边的怪物序列不为空
阅读全文
摘要:# [1001 Hide-And-Seek Game](http://acm.hdu.edu.cn/showproblem.php?pid=7275) ## 题意:给出一颗树,两人在树上特定两点来回走,问最早在那个节点相遇 ## 思路:枚举所有点,看它是否同时在两条链上,如果在,那么结合周期、两人最
阅读全文
摘要:# [A-Almost Correct](https://ac.nowcoder.com/acm/contest/57355/A) ## 题意:01序列,每次可以选择 , 使得这两个位置有序,求一种方法使得除了该序列之外的其他序列均可排有序的方法 ## 思路:首先,需要完全排好任意随
阅读全文
摘要:# 最小生成树 ## 定义 * 边权和最小的生成树 ## Kruskal 算法 * 让边从小到大排序,如果不在同一集合,就加入 ```c++ #include using namespace std; const int MAXN = 5e3 + 10,MAXM = 2e5 + 10; int n,
阅读全文
摘要:# 基环树 ## 简单无向图有n个点n-1条边,那么它们会连成一条直线 ## n个点n条边,相对多一条边,有且仅有一个环 ## 可以利用拓扑排序找这个环 ### 例题:[F - Well-defined Path Queries on a Namori](https://atcoder.jp/con
阅读全文
摘要:# 最近公共祖先(LCA) ## 主要思路:一个节点的 的祖先是那个节点 的祖先的 的祖先 ## 也就是说 ## 还要计算 的值,记录深度 ```c++ #include using names
阅读全文
摘要:# 二分图(二部图) ## 概念:可分为两个集合,集合内的点无边相连的图 ### 判定:染色法 ```c++ int col[MAXN]; vector ed[MAXN]; bool bfs(){ col[1] = 1; queue qu; while(!qu.empty()){ int u = q
阅读全文
摘要:# 次小生成树 ## 定义:边权之和大于最小生成树边权之和的生成树中最小的一个 ## 思路:枚举所有未连接的边连上,那么一定会出现一个环,再去掉环上最大的边(如果与新加的边等大就要去次小边),这个最小值就为次小生成树的值 ## 朴素求法:先用kruskal求出最小生成树,然后从每个点开始找到其他点的
阅读全文
摘要:# 最大流问题 ## 给出起点、终点、边最大能传递的值,问从起点到终点最多能传多少 * 阻塞流:不能再给终点增加值的流(最大流就是一种阻塞流) * 传统算法:新建一个剩余量的图,找路径、减去最小值、删路径,重复直到为阻塞流(不一定为最优解) ## Ford-Fulkerson算法(复杂度O(fm),
阅读全文
摘要:# tarjan算法(求强连通分量)(缩点) ## 强连通:两个点相互可达 ## 强连通分量:集合中的点两两可达 ## 思路:记录自己的时间戳dfs与能到达的最小时间戳low,先dfs搜索完自己能到达的点,如果更新后的最小时间戳low与己的时间戳dfs相等说明自己就是那个强连通分量顶点,如果不相等说
阅读全文
摘要:~~cdq大法好~~ ~~还是没怎么搞懂~~ ### 先把题目放着: 二维偏序:[P1908 逆序对](https://www.luogu.com.cn/problem/P1908) 三维偏序:[P3810 【模板】三维偏序(陌上花开)](https://www.luogu.com.cn/probl
阅读全文
摘要:# 动态规划  ## 1.数字三角形模型 ### 1.1只取一条最大路或最小路 - [1015. 摘花生](https://www.acwing.com/problem/co
阅读全文
摘要:# 背包问题 ## [01背包问题](https://www.acwing.com/problem/content/2/) * 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次. * 第 i 件物品的体积是 vi,价值是 wi. * 求总体积不超过背包容量情况下的最大价值 ```c++
阅读全文
摘要:# 数论专题练习 ## [A - Beautiful Numbers](https://vjudge.csgrandeur.cn/contest/542598#problem/A) ### 题意:输入a,b,n,求只包含a,b的n位数并且n位之和为a或b的数量 * 枚举a和b的数量,判断它们的和是否
阅读全文
摘要:# 快速等比数列求和 ## 1.等比数列求和公式 * 要求给定的取余的数是质数,能求出逆元 ## 2.递归分解 * 如果有偶数个,那么分解成两半,左边就为 ,另一半为$a_0q^{n/2+1}+a_0q^{n/2+2}+a_0q^{n/2+
阅读全文
摘要:# Miller_Rabin算法快速判断大数是否为素数 ## 并不是绝对,这只是一种判断大概率为素数的方法 ## 首先根据费马小定理有: ## 又因为 为素奇数,所以 为偶数,表示为 ## 所以有$a^
阅读全文
摘要:# 快速计算多项式相乘系数 FFT快速傅里叶变换 #### [快速傅里叶变换(FFT)——有史以来最巧妙的算法?](https://www.bilibili.com/video/BV1za411F76U/?spm_id_from=333.337.search-card.all.click&vd_so
阅读全文
摘要:# 数论 ## 最大公约数 ( ) * 由欧几里得定理可知gcd(*b*,*a* mod *b*) ```c++ ll gcd(ll a,ll b) { if(b == 0) return a; else return gcd(b,a%b); } ``` * 顺便得出两数的最小
阅读全文
摘要:# 斯特林数 ## 第二类斯特林数 ### 用于表示将n个不同的元素分成m个集合的方案数,记作 ### 推导:分成两种情况 * 1.由n - 1个不同的元素分成m - 1个集合,那么就将第n个元素放在第m个集合即可 * 2.由n - 1个不同的元素分成m个集合,那么将第n个元素随便放
阅读全文
摘要:# 排列组合:球盒问题 ## 有n个球和m个盒子,根据是否允许为空,球是否相同,盒子是否相同分成8种情况 ### 前置知识:第二类斯特林数 ### 1.允许为空、球不相同、盒子不相同 * 给每个球选择它的盒子,所以结果为 ### 2.不允许为空、球不相同、盒子不相同 * 假设盒子相同,
阅读全文
摘要:# [CUGBACM22级暑假小学期训练-贪心](https://vjudge.net/contest/565189) ## A - 种树 ## 题意:给一个环,取m个节点,不能取相邻节点,令所取节点的权值之和最大化 ## 思路:~~dp~~,用到了最大流中建立反向边的思想使得这个贪心能够“反悔”
阅读全文
摘要:## A - A-B 数对 ## 题意:找 的对数,已知 ,那么就是找对于每个数就是找 的数量 ## 思路:二分找位置最大的 与位置最小的 ,枚举每个 即可 ## 用map可能也行? ### map ```c++ #include using namesp
阅读全文
摘要:## [A - 平面最近点对(加强版)](https://vjudge.net/problem/洛谷-P1429) ### [参考点距题](C:\Users\Administrator\Desktop\markdown\计算几何\点距题.md) ## [B - 三维偏序(陌上花开)](https:/
阅读全文
摘要:# SG函数解决公平组合问题 ## 公平组合问题: - 游戏有两个人参与,二者轮流做出决策,双方均知道游戏的完整信息; - 任意一个游戏者在某一确定状态可以作出的决策集合只与当前的状态有关,而与游戏者无关(如象棋就为非公平组合游戏,因为你不能操作对手的棋子,那么你可以操作的集合就与对手不同); -
阅读全文
摘要:# 博弈论入门 * 必败情况为P,必胜情况为N,我们要得出N一定有方法能转换到P,P任意操作都会到N ## 1.巴什博弈 * 两个顶尖聪明的人在玩游戏,有一堆n个石子,每次每个人能取 个石子,不能拿的人输,请问先手与后手谁必败? * 1~m个石子,先手必胜 * 反推m+1个石子只能到1~
阅读全文