从大陆一直红到西海岸

基础算法

  1. 二分。NF0925A,NF1018C,NF1019A(二次函数顶点),NF1110C(第 k 大,随机二分,双指针),Gym104128D(更改贡献方式),P6142(贪心),P2824(转化为 01 排序),NF1011A(三分),CF48F(二分+nth_element 是 O(n) 级别),NF241022B(+哈希),NF241028B(考虑 min 取值二分出分界),FD0224B(最优化 x+y,二分,将不等式降到一维),P4654(二分+树形 dp 预处理)。
  2. 倍增(相比二分是可以预处理)。NF0905C(哈希),P3295(并查集),MX0814C(蝴蝶变换,Hash),CF983E NN country(倍增优化跳,二位数点),NF241105C(倍增优化跳),FD0221B(将跳的过程分成 log 个段,优化跳,改变倍增定义),FD0224B(ST 表反着用),uoj #806. 【UR #25】见贤思齐(取值范围跳的过程不断缩小),ABC274Ex(xor,二进制数拆为向量,矩乘,倍增)
  3. 贪心。 NF0905A,NF0907A,NF1012B(dsu on tree),P5749 IOI2019(删除不必要元素),NF1107A,P5665 CSP2019 划分,CF1886E(从大到小),GJ0219A(邻项交换),MX0718B(平均数最大,大到小,若变小则不选),MX0801D(构造边权不同,左端点排序),MX0806B(每次选平均数最小的段,序列切分为平均数不降),CF1442E Black, White and Grey Tree(每次删叶子,树的直径),CF1976F Remove Bridges(线段树),CF436E,CF802O(反悔贪心),ARC185B(转化为前缀限制),ARC183D(每次选一个最大的子树来匹配),P4437 [HNOI/AHOI2018] 排列(调整,拓扑,平均数,堆,并查集),ARC121D 1 or 2(区间匹配模型),P7897 [Ynoi2006] spxmcq(树上最大连通块和,值域扫描线),P9521 [JOISC2022] 京都观光(凸包),CF1610G AmShZ Wins a Bet(若删一括号必删一区间,dp 转移树上倍增比较字典序),P6346 [CCO 2017] 专业网络(转化为任务-时间模型)。
  4. 差分。NF0902A,NF0921B(差分建边),ARC067F(二维差分),P6847(维护差分数组),CF1188C(答案是前缀和形式),CF1887C(区间加),CF1943D2(匹配问题,容斥),P4458 [BJOI2018] 链上二次求和(树状数组维护高次前缀和,差分修改)。
  5. 分治。NF0921D(只有一个特殊的点),NF0926C(对角线),NF1113C(集合的二分,势能),CF1918E(按值域分治),GJ0220A(猫树),P6109(历史最值),P5979 Druzyny(maxaiaj 拆成 max(maxaiamid,maxamid+1aj)),MX0808A(分治乘法,合并同类项),P3206 [HNOI2010] 城市建设,P9531 [JOISC2022] 复兴计划(边存在是一个区间),CF1442D Sum(同 NF0921D),NF241022C(cdq+dp),NF241029D(一层一层构造树),FD0209B(分治乘法,同 MX0808A)。

动态规划

  1. 状态数小用矩阵优化。NF0905D(子序列),NF0928B(矩阵快速幂),NF1102B(动态 dp),P6009(逆矩阵),GJ0226A(路径计数),MX0729B(随机游走,矩阵乘法和向量乘矩阵复杂度不同,分块平衡),CF1740H(MEX 值很少,ddp),P6190 [NOI Online #1] 魔法(去掉用了魔法的一段为子任务),NF241008B(背包,倍增预处理 Tk),NF241112C(类似 P6009),qoj9479. And DNA,SMOI-R2T4,NF241127B,CF1286D LCC(拆贡献)。
  2. 状态优化。NF0919B(p 作状态,apb),NF1023B(容斥),ARC083E(状态是可行性,把一维放到答案),P2224(同上题),P7962(同),P5307(整除分块),P3354 [IOI2005] Riv(加状态维数),MX0812A(算点对距离和,换为 dp 某点距离 k 能到的点数),NF241014C(利用异或的性质减少状态),CF2021D Boss, Thirsty(把区间放到一个端点上),CF2023D Many Games(p/w 形式,把 w 做状态;观察到背包的物品数很小),P7962 [NOIP2021] 方差(最优化 ka+b 形式,将其中一个设为状态),NF241102B(将答案放进状态),ARC179E (只有两种状态),P8365(类似 CF2023D),qoj8049(钦定转移方向)。
  3. 插入 dp。NF1016B,CF1919E,P7967(排序),CF626F(差分贡献)。
  4. 树形 dp。NF1005A(贪心),NF1010C,ARC179D,P3647 连珠线(定根、换根),CF1935F(树形 dp,并查集),P10060 [SNOI2024] 树 V 图(连通块缩点后 dp),AGC004F Namori(黑白染色,贡献拆到边上),Qoj # 7895. Graph Partitioning 2(根号分治)。
  5. 概率 dp。NF1026C(线性变换,矩阵),NF1031C(表达式树,动态dp),AGC050D(拆贡献)。
  6. 换根 dp。NF1114B,GJ0214A(次远路),CF1794E(哈希)。
  7. 凸优化,wqs 二分。NF0904C(缩减一维),P4767 [IOI2000] 邮局(决策单调性)。
  8. 斜率优化。NF0908C(栈),NF1013B(栈)。
  9. 状压 dp。NF0912B(容斥),ARC078F(挂连通块转移),ARC058E(值 17 的区间和),ARC171D(移项转化为最小颜色数,每次转移若干个独立点),CF1730F Almost Sorted(从前往后填,状态 28 个),CF1773G Game of Questions(转移取决于第一个出现的,算概率),P9131 [USACO23FEB](大抵与上题类似),NF241105B(每次是分配 2ni 个数,用来构造 k)。
  10. 区间 dp。gym104369M(凸包直径),CF1863F(异或),GJ0215A,AGC050B,P4766(钦定最大最后操作),P9746 KDOI-06-S 合并序列,GJ241005B(每次找最小点,划分子任务),P7914 [CSP-S 2021] 括号序列,NF241007B(取出最长链),P6563 [SBCOI2020] 一直在你身旁(找 max 的分界点,单调队列优化),NF241101C(每次选一个点,并处理跨越这个点的区间,删点划分子任务),NF241125C(每次取出最大值算贡献),P10141(DAG 图反置,前缀和优化,分阶段更新前缀和)。
  11. 线段树优化 dp。ARC085F(右端点排序),CF1889C2,P7503(转化贡献方向,刷表),ARC073F(整体 dp),Qoj 7884. Campus Partition(联通块转为链,线段树合并),P8476 惊蛰(后缀 min,线段树二分,推平),SMOIR2T3,NF241029B(维护同余 k 位置的信息,贪心),CF671D Roads in Yusland(线段树合并)。
  12. 决策单调性。CF1603D(二分队列),P5892 [IOI2014] holiday(分治)。
  13. dp of dp。P8352(找到两维状态的关系),MX0807C(状态是背包,数量少,预处理转移),P10614 BZOJ3864 Hero meet devil(差分)。
  14. 数位 dp。MX0717C(异或拆位,写成竖式运算,进位写进状态),MX0724C(同上),NF241018C。
  15. 写成 DFA 形式。P10013 [集训队互测 2023] Tree Topological Order Counting(将转移相同的合并,将有向图反向),P10141 Merging Cells P(区间拓展变为区间分裂)。

计数

  1. 拆贡献。NF0902C(连通块→ 每个点),CF280C(总→每个点),CF258D(逆序对→每个点对),CF1868C(所有路径→每种长度路径),P5072 [Ynoi2015] 盼君勿忘(所有子序列→每个元素),CF1615F(01 序列 dp,奇数位取反,在空隙处计算答案),MX0807B(联通的点对数→每对点,分段长度 n 种。),P6630 [ZJOI2020] 传统艺能(拆成每个点的贡献,矩阵优化),MX0825B(拆每个字符,相同子串个数拆成每个区间,矩阵优化),P10764 [BalticOI 2024] Wall(算 hi 换成算每个 h 有多少个),P7116 微信步数(拆每个维度的贡献,插值),P7519 滚榜(状压,费用提前计算),NF241012B(+容斥),NF241015A,NF241018B,ARC181D(每个位置冒泡多少次),ARC176D(绝对值看做距离,枚举其间所有位置),GJ250103A(拆成交换相对顺序的数对),GJ241224B(拆成二进制)。
  2. 先后顺序,转化外向树拓扑序的问题 =n!1sizu。NF0922D,P5400,AGC060C。
  3. Burnside 引理。NF1012D(容斥原理),P1446 Cards(置换),GJ0216B(动态 dp)。
  4. 容斥。NF0912B(子集容斥),NF0919C,NF0929A(减去第一次违法),NF1110B(容斥掉约数),P3160 局部极小值(容斥原理),P1450 硬币购物(钦定多少违法),CF1821F(去重),GJ0213A(区间 dp,减去第一次违法),P5933(钦定某点并枚举其所在子集),CF1943D2(容斥减 dp 维度),MX0716B(暴力容斥,整除分块减少状态,n/ab=n/a/b),MX0803B(强制经过某点难算,钦定不经过某些点),P3349 [ZJOI2016] 小星星(去标号,删点容斥),ARC093F Dark Horse(不合法情况少,容斥),P8290 [省选联考 2022] 填树([x,x+k] 减去 [x,x+k1] 答案,插值),Nf241015D(meet in middle,组合数拆成二维多项式),AGC061C(双射,dp维护容斥),P10104 GDKOI2023 异或图(集合划分容斥),ARC185E(欧拉反演),AGC058D Yet Another ABC String(差分刻画性质,容斥+组合),P6846 [CEOI 2019] Amusement Park(DAG 定向每次取出最外层,会算重,容斥),CF1874F Jellyfish and OEIS(钦定区间包含或相离,相交区间贡献可以抵消)。
  5. 钦定加入顺序。NF0921A(从大到小填),NF1005B(从小到大填),P4448(每种颜色分开插入),CF1111E(从父亲向儿子填),AGC002F Leftmost Ball(每种颜色都有 k 个,分开插入),MX0825A(从小到大填,能填的位置是包含关系),ARC148E ≥ K(消去常数,正负绝对值排序),NF241011C(从浅往深填,点分树),ARC187C 1 Loop Bubble Sort。
  6. 斯特林数拆幂。NF1024D,P6144(线段树优化 Dp)。
  7. 组合意义。ARC082E(2s 选/不选),GJ0214B(2s 黑白染色),AGC001E BBQ(组合数转化为路径数,dp),P6811 建筑大师(si=2si1sik 这种转化为 0 跳到 n 的组合意义),AGC013E(ai2 组合意义,相当于每段放两个),CF1284E New Year and Castle Construction(转化为求凸包边的出现次数,极角排序),ARC124E Pass to Next(转化为每个人选一个球),FD0224C(对称性,容斥,范德蒙德卷积,xor,逆用 Lucas)。
  8. 二项式反演。CF285E,P4921 情侣?给我烧了!(注意钦定不是至少),P3270 [JLOI2016] 成绩比较(插值),P6478 [NOI Online #2 提高组] 游戏。
  9. min-max 容斥。P8253 如何正确地排序(转化为偏序)。
  10. 构造双射(最小表示法)。P6811(组合意义),P10008 [集训队互测 2022] Range Minimum Element(区间 dp,插值),CF53E Dead Ends(加叶子保证编号最大),AGC061C First Come First Serve(容斥+dp)。
  11. 组合计数。CF140E,CF1753C,CF1657E,CF1909F2(棋盘放车),P2490(Nim),MX0729A(求 (|aibi|)2 的和),P6596 How Many of Them(围绕基准点构造一个整体),ARC100F Colorful Sequences(拆贡献,颜色是等价的,无需状压),CF1781F Bracket Insertion(原本区间 dp,长度相同的等价),P10375 [AHOI2024 初中组] 计数,qoj7864。
  12. 找充要条件并对结果 dp。CF17C,GJ240910C,CF1930E(转化为 01 序列 dp),CF1984E Shuffle(树的最大独立集),MX13sim#7B,MX13sim#7C,AGC009E Eternal Average(进制),MX13sim#9B(将大限制拆为小限制),NF241007B(最长链),NF241008A,qoj9489. 0100 Insertion,P6383 『MdOI R2』Resurrection。
  13. 集合计数转成序列计数。P3214 [HNOI2011] 卡农(异或,容斥,找子任务),ABC221H Count Multiset(差分拆贡献),CF1605F PalindORme(自动机判定变为静态判定,划分等价类)。
  14. 针对连通块的点边容斥。P8990 [北大集训 2021] 小明的树(拆贡献到每条黑白边),NF241011B(直径中点)。

图论

  1. 网络流/二分图模型。NF0904D(模拟费用流),NF1114C(最小割,差分+并查集),NF0912C(奇偶二分图),CF793G(行列二分图),P5038(黑白染色二分图),GJ0221B,NF0907D,NF1009B(仙人掌最小割,先割环上最小边),FD0210C([0,2w) 里奇偶匹配)。
  2. 三元环。NF0902B(二分图四元环),NF1008D(最短路为 2 的点间连边是三元环个数),CF985G。
  3. 最小生成树。NF0911A(环流),NF0928D(森林和菊花,动态 dp),NF1106B(增量式维护,并查集,边从大到小插入),CF1253F(给边钦定权值,重构树),CF1764F(钦定边权),P4764(值域为 [l,r] 的生成森林为 l 生成树减 >r 的边,扫描线)。
  4. dijkstra。NF1030C(超级源点,最小环),P2685(强制过一个点最短路,线段树 chkmin),P7984(优化建图,松弛),P8860 动态图连通性(离线,转化字典序最大,二分哈希),NF241119B(奇环,奇偶拆点)。
  5. Hall 定理。ARC076F(并集转交集,线段树),P3488(移项,最大子段和)。
  6. Tarjan。GJ0927B(强连通分量),CF487E(圆方树,树剖),P8456(黑白边路径计数),MX0807D(仙人掌可达点对数,对环容斥)。
  7. 优化建图。CF1860E(虚点),ARC061E(虚点),GJ0821C(01trie),CF1904F(拓扑)。
  8. kruskal 重构树。CF1920F2(回路与射线,奇偶拆点),P4899(扫描线)。
  9. DAG。NF0907C(bitset),NF1109D(根号分治),P3573(强制过一个点最短路,拓扑序),NF241125A(分层图之后是 DAG,无需 Dij),P7831 [CCO2021] Travelling Merchant(一个环拆掉最大的点为 DAG)。

数据结构

  1. 笛卡尔树。NF0908A,P7219 星座 3(线段树合并),P5044 [IOI2018] meetings(线段树,dp 加维度),NF241125C(做一个笛卡尔物状的区间 dp),qoj8542. Add One 2,NF241128C。
  2. 分块。CF1491H(树上弹飞绵羊),P3863(动态区间排名),P5443 [APIO2019](操作分块,可撤销并查集),GJ0823B(序列分块,换根 dp),CF1942F(稀释修改的影响),MX0727D(维护射线大小关系,分块,每块暴力),MX0729B(根号平衡,矩阵/向量乘矩阵),P5072 [Ynoi2015] 盼君勿忘(拆贡献),CF840E(以 256 分块,可看做是 meet in middle),P9598 [JOI Open 2018] 山体滑坡(操作分块),P5069 [Ynoi2015] 纵使日薄西山(第二分块),P6578 [Ynoi2019] 魔法少女网站(操作分块+01 原理),P7811 [JRKSJ R2] 你的名字(ST 表维护块间 RMQ),P4119 [Ynoi2018] 未来日记(第一分块),P4192(分块凸包),P9969 [THUPC 2024 初赛] 分治乘法(log 分块),牛客练习赛 73 F 回音(值域分块+根号平衡)。
  3. 并查集。NF1023C(维护右边第一个没被计算),GJ0927A(等价类),P3631(黑白染色,行列关系),GJ1007B(从小到大把点加入),CF1797E(势能分析),CF1788F(异或,带权并查集,拆位),P7323 括号路径(把同类项缩起来),P3295(倍增),GJ0222C(行列关系),CF1935F(树形 dp,可撤销并查集),NF241115A(维护每个位置的相对取值)。
  4. 树分块。NF1013D,NF1030D。
  5. 李超线段树。NF1109C(差分建边),GJ0927C(一次函数),CF1866K(次大值)。
  6. (01)字典树。NF0925D(树上路径),P5283 异或粽子(可持久化 trie,二分第 k 大),P5985(区间 dp,决策单调性),AGC044C Strange Dance(012 字典树,低到高),CF1849F(01 trie 相邻的异或小,dp)。
  7. 虚树。NF1010D(每种颜色虚树),Gym104128E(每个深度虚树)。
  8. 扫描线。NF0928C(dfs序,矩阵加),NF1018B(或运算的 log 性质),CF526F(棋盘),CF1793F(单调栈),CF1887D(枚举切点,矩阵加),GJ0219B(set),P3863(推序列下标,维护时间轴),P10083(二分出合法区间二位数点),P4211 [LNOI2014] LCA,CF571D Campus(维护时间-值平面,维护所有时间/所有点),GJ240924D(闭合子图转化为出边编号最大最小值),NF241021B(从小到大加入每个数,维护区间),ARC180D,ARC187D(固定 min 维护 max),FD0218B(固定左端点维护右端点最值,均摊)。
  9. 线段树分治。NF1012C,GJ241230B(加入一个数钦定其做贡献好算,删一个点难算)。
  10. (裸)线段树。CF1439C(单调性),P4198 楼房重建(凸包即到原点斜率递增,log 的 merge),P4314 CPU 监控(历史最值,矩阵),P9130 Hungry Cow P (类似楼房重建),MX0720B(观察,区间前 44 大),MX0814D(超级钢琴区间版,最大子段和,RMQ),CF1677E(历史和差分转化),P4425 [HNOI/AHOI2018] 转盘(断环,后缀 max,线段树维护单调栈),FD0210B(维护可行性,线段树二分),CF671E Organizing a Race(贪心+单调栈,维护可行性,线段树二分),P5609 [Ynoi2013] 对数据结构的爱(双指针合并)。
  11. 平衡树。P9962 [THUPC 2024 初赛] 一棵树(树形 dp,闵和,启发式合并),CF809D Hitchhiking in the Baltic States(更换状态设计,平移),Qoj # 9986. Shiori(势能分析,维护连续段)。
  12. 倍增值域分块。CF2066E Tropical Season。

  1. 树上高消。NF1003C,NF1030A,CF1823F。
  2. dfs 序的性质。NF1018D(dfs 序相邻,lca 更深),CF1778E(子树外,前后缀),MX0805B(支配树,路径并为深度减去 dfs 序相邻 lca 深度)。
  3. 树的直径。CF1917F(可行性背包),MX0728C(距离最大值端点一定是直径),P6845 Dynamic Diameter(线段树维护点集),CF1442E Black, White and Grey Tree(贪心,将颜色不同点边权设为 1),CF2006E(直径中点),NF241011B(直径中点,点边容斥),NF241028A(距离某点最远的点来自直径端点),NF241125D(直径中点),Uoj#576(每种颜色维护线段树)。
  4. 把路径挂到 lca 上。NF1012B(贪心),CF856D(dp),MX0731D(求颜色相同点两两距离的期望,deplca 转化为公共祖先个数,链加/链求和),CF757G Can Bash Save the Day?(拆出 deplca),CF1844G Tree Weights(+逐位确定,递推)。
  5. dsu on tree。P6142(二分+贪心),P6847(前缀最大值,差分)。
  6. 树的重心。CF1842F(拆绝对值),CF516D(取 fx 最小的做根,使得 fx 随深度增而增)。
  7. 点分治(点分树)。NF0929D(两个键值作扫描线),CF1452G(博弈),P7215 [JOISC2020] 首都(可看做分治),NF241029C(优化建图),NF241029D(构造树,点分治,每个儿子确定其属于哪个子树),NF241105D(维护最大长度以及次大长度),AT_cf17_final_j Tree MST(点分治,递归各自求 MST),P4220 [WC2018] 通道(降维,虚树,+枚举 lca,直径)。
  8. 树上博弈。AGC005E Sugigma: The Showdown(disA <= disB 的都不能到达),CF1452G,AGC014D Black and White Tree(删叶子形式子任务)。

数学

  1. gcd 的 log 性质。NF0904B(破环,枚举断点),NF1018B,GJ1007C。
  2. 莫反。CF645F,GJ0216C,CF1139D(期望 gcd=1 长度)。
  3. 线性基。CF724G(找环,拆位),CF587E(差分,线段树)。
  4. BSGS。CF1840G2。
  5. 拆位。CF1874B(整体),CF1322B(双指针),CF1930F(记搜,a|b+a&b=a+b),P7207(从低到高拆位),P9745 树上异或(连通块 dp),qoj 9479. And DNA,CF1844G Tree Weights(路径写成 deplca)。

构造

  1. 树上构造问题。ARC063E(以子树为子任务,处理取值范围,最后根向下),CF1515F(MST,消去常数,子树为子任务递归构造),P8314 [COCI2021-2022#4] Parkovi(二分,子树子任务构造,贪心),CF1610H Squid Game(定根,分是否为直链讨论,子树为子任务相当于点覆盖问题),P5912 [POI 2004] JAS(转化为染色,子树),UOJ #751. 神隐(删叶子),NF241029D(逐层构造,随机分治)。
  2. 增量式构造(归纳)。NF1107B(先随机打乱,每次取出第 n 位)。
  3. 随机。MX0806D(按 mod4 分类,随机取两个数),CF1835C(生日悖论),P6817 [PA 2013] Filary(答案下限为一半,随机化,质因数分解,xor-hash)。
  4. 拓扑排序。CF512D Fox And Travelling (每次删度数为 0 的点,这样是不会删到环),NF241022A(拓扑关系),NF241029A(两棵生成树构造,每次删度数为 2 的边),AGC010E Rearranging(相对顺序不变的连边,给边定向),P7054,AGC014D Black and White Tree(删叶子形式子任务,拓扑处理),CF1019C Sergey's problem(DAG,反图 DAG)。
  5. 二进制。NF241105B(每次是分配 2ni 个数,用来构造 k),AGC050A(“循环”二叉树),GJ241224B(拆贡献也是 2x 形式)。
  6. 图论建模。NF241119B(消去常数,重设边权,奇环,奇偶拆点),CF1270G Subset with Zero Sum(iiai 连边,找环),qoj # 8130(连边表示颜色不同,偶环,二分图染色)。
  7. 欧拉回路。CF325E(满二叉树),CF508D,MX0718A(以下标取模 k 作点),CF547D(行列拆成二分图,边定向),CF1981D,CF1458D Flip and Reverse(翻转 sum 数组,存在 (sumi1,sumi) 的边),CF1610F Mashtali: a Space Oddysey(边定向)。
  8. +贪心。MX0801D(构造边权不同,左端点排序,堆),ARC175D(差分贡献,从大往下拼),ARC121D(区间匹配模型),AGC001F Wide Swap(演化为排序),AGC032E Modulo Pairing(区间匹配模型)。
  9. zig-zag pattern(形如 +1-2+3-4...=1,-1,2,-2...)P9837 汪了个汪,P3599 Koishi Loves Construction。
  10. 二选一构造。P5361 [SDOI2019] 热闹的聚会与尴尬的聚会(团与独立集,独立集删度数小的点)。CF1325F Ehab's Last Theorem(根号,环,独立集),CF1198C Matching vs Independent Set(将能选的边都选,剩下独立)。
  11. 找不变量。ARC135D Add to Square(黑白染色,将黑点取相反数,行列和不变),CF1672G Cross Xor(找每行每列异或和关系,二分图),AGC052B Tree Edges XOR(前缀和刻画,xor 与奇数)。
  12. 离线询问类。CF1365G Secure Password(考虑将每个位置被询问的下标集合,C136),UOJ #751. 神隐(删叶子,叶子大小为 1)。

杂项

  1. 环的处理。NF0904B,NF0918B,MX0807A(断环上最小边),P4425 [HNOI/AHOI2018] 转盘(观察到最优解不会在环上转圈,断边),P8859 冒泡排序(钦定 n 在最后,转化为后缀 max 个数,笛卡尔树),AGC004F Namori(奇偶环讨论)。
  2. 记忆化搜索。NF0907B,CF1200F(对 lcm 取模)。
  3. 时光倒流。NF0911B,NF1026A(删边变加边,并查集生成树),GJ240919D(线段树),GJ241011C(二分),FD0215A(倒着做状态可以合并做到更少),AGC023D Go Home(从后往前决策,递归),P6346 [CCO 2017] 专业网络(任务时间是前缀,倒着贪心),P3826 [NOI2017] 蔬菜(任务-时间模型)
  4. 根号分治。 NF0918A,NF0926A,NF1109D(对询问个数分治,拓扑排序,bitset),P5309 [Ynoi2011] 初始化(出现次数分治),P10408(根号平衡,fwt 做一半),CF1039D(B 的答案 n/B,二分/分治),P9132(同上),P7811 [JRKSJ R2] 你的名字,Qoj # 7895. Graph Partitioning 2(状态数是 O(nn) 级别的,直接 dp),Uoj #246. 【UER #7】套路(扫描线扫 r)。
  5. 随机。NF0918C,P2538(退火),NF241014B(鸽巢原理),NF241029D(随机以划分分治标准),NF241119C(交换两个位置,如果不同就继续搜,否则 12000 概率继续搜),MX0806D(按 mod4 分类,随机取两个数),CF1835C(生日悖论),FD0224A(颜色不一样,随机赋颜色),ARC158D Equation,P4220 [WC2018] 通道(随机迭代直径)。
  6. 关于 mex。NF0925D(二分),NF1011B(二分,主席树维护每个数最后一次出现位置),GJ0825(从小到大加入,维护 li 表示 i 左边最近的 mex=k 位置)。
  7. 中位数,设为 1/1.NF0925D。
  8. iai 连边,形成置换环。NF1017C,CF1783F(二分图匹配)。
  9. 括号匹配。NF1023A,ARC076E(平面里线段关系),CF351C(动态 dp),GJ0807B(二维数点),CF1924D(容斥)。
  10. 考虑答案上限/下限。NF1103B(根号为上限),NF1011A(二分,log 大小),CF1845E(状态大于根号无用),GJ0217A(根号),AGC050C(每次减半,log 大小),P9676(状态大于根号无用),P6817 [PA2013] Filary(下限为一半,随机化)。
  11. 双指针。NF1110C(字典序,单调性),gym104369B(单调性),CF808E(更改一维,另一维的变化很小),CF1809F(环),MX0718C(固定 x 坐标枚举 y,双指针维护前 k 近),NF241112B(观察性质,双指针)。
  12. 区间树问题。NF1116B(从叶子开始,答案递增),GJ250103B(以子树为子任务,决策放在子树里),CF1874F Jellyfish and OEIS(容斥,函数有并的性质,区间有交抵消贡献,区间 dp)。
  13. 更改贡献方向(正难则反)。Gym104128D(区间加等差数列),P7503(填表变刷表),CF702F T-shirts(商品买人,平衡树处理相对顺序改变),FD0224B(枚举 p 算答案,不如 ds 维护所有 p 的答案)。
  14. 排序后逐个加入。P3160(状压,容斥),P8321 沈阳大街 2(有关最小值计算,从小到大插入,dp 状态记录还剩多少匹配)。
  15. bitset。CF914F(字符串匹配),CF1856E2(二进制拆分,01背包)。
  16. Hash。CF1794E(深度集合,换根),CF1887C(二分哈希),MX0813B(判断所有字符串与某个串不同的位置都为 k),MX0814C(判断蝴蝶变化后是否相同,倍增),NF241128B(哈希),P6817 [PA 2013] Filary(xor-hash 判断出现位置),P10992 最长同类子串(用 iprei 表示集合关系),ABC274Ex XOR Sum of Arrays(二进制数拆为向量,矩乘,倍增)。
  17. meet in middle.CF1767E(最大权独立集),Nf241015D(找结论,容斥,拆为多项式形式),GJ241224A(对每种子集都背包,拆成两个集合合并),P8350 [SDOI/SXOI2022] 进制转换(拆分贡献,NTT 合并)。
  18. 拆绝对值。CF1859E,CF1842F(重心),FD0209C(将每个点独立,算所有方案的最大值)。
  19. 离散化。P4229 某位歌姬的故事(从小到大加权值),P3643 [APIO2016] 划艇(组合计数),P8476 「GLR-R3」惊蛰(线段树)。
  20. 消去常数。CF1842H Tenzing and Random Real Numbers(绝对值小到大加入),ARC148E ≥ K(构造插入顺序),CF1656F(aiaj+t(ai+aj)=(ai+t)(aj+t)t2),NF241119A(全部数减去 n),uoj #806. 【UR #25】见贤思齐(转化为取值范围不断缩小的过程)。
  21. 分数规划。MX0802D(拆为点对贡献,最大权闭合子图),求平均数最大区间,NF241012C(有平局,求获胜概率比失败概率最值)。
  22. 使不同的部分独立。P3270(每门课独立),P5616 [MtOI2019] 恶魔之树(大质数独立),CF1530F(容斥,但是每列独立,只需枚举行与对角线钦定),P8292 [省选联考 2022] 卡牌,MX13sim#7B(字典树每个点左右走是独立的),NF241112B(可以独立成 aiai+bi),ARC184B 123 Set(写成 2i3jk 的形式)。
  23. 若干个不同的数,考虑钦定大小顺序。NF241121A(转化为偏序),FD0224A(二分,枚举所有 1k 排列贪心)。

研究方法

  1. 01 原理(值域扫描线)。ARC176D(绝对值看做距离,枚举其间所有值),FD0206B(维护出 01 中 1 的连续段出现的时间,ds 维护),P7897 [Ynoi2006] spxmcq(询问从小到大,类似最大子段和贪心,维护树上连通块),P6578 [Ynoi2019] 魔法少女网站(+操作分块),P11051 [IOI 2024] 树上代价(维护连通块出现时间,贪心),Loj #6913. 树莓立方体(维护阶梯),P4375 [USACO18OPEN] Out of Sorts G(排序,答案为所有 x 排好最大时间,01 折线)。
  2. 数形结合直观表示。FD0218A(两个属性放到平面上,调整得出性质,双射转化为折线,划分等价类),CF1458D Flip and Reverse(01 看成 1,1 折线,一次操作就是翻转 sum 数组,欧拉回路),P11052 [IOI 2024] 象形文字序列(平面刻画匹配)。P3642 [APIO2016] 烟火表演(平面刻画方案,凸包,闵和),P11364 [NOIP2024] 树上查询(合法方案形成阶梯),CF2066D2(平面上沿时间观察改为沿下标观察),P7214 [JOISC 2020] 治療計画(平面上最短路,松弛,势能线段树),ARC150E Weathercock(1,-1 直观折线,翻转),P9338 [JOISC 2023] Chorus(1,-1 折线,划分子序列变为划分区间),CF1750F Majority(1,-1 折线,以卡住的形态划分等价类)。
  3. 研究合法方案(集合)。FD0218C(用放满的时间 ti 表示,并 dp t 序列,Hall 定理判定),P8277 [USACO22OPEN] Up Down Subsequence P(最优方案具有局部最优性),P10060 [SNOI2024] 树 V 图(方案的合法性判定在于连通块相接处),P6346 [CCO2017] 专业网络(一个方案可以表示为一个排列,转化为经典贪心),AGC030E Less than 3(用 01 的分界线刻画),P5069 [Ynoi2015] 纵使日薄西山(方案是操作位置,ddp),P3642 [APIO2016] 烟火表演(方案写成二元组),P11364 [NOIP2024] 树上查询(区间具有并的性质),P8528 [Ynoi2003] 铃原露露(研究非法方案集合,历史和),CF2066D2(用放满的时间表示,研究这个序列),CF1874F Jellyfish and OEIS(区间交,反交的性质),qoj # 7177. Many Many Cycles(环的异或性质,dfs 树,xor-hash),uoj #792. 【UR #24】比特跳舞(合法路径具有并的性质,相当于若干团)。
  4. 调整。FD0218A(调整得折线划分),FD0224B(同时将两个位置往外挪,两种方案可以 O(1) 调整),P4437 [HNOI/AHOI2018] 排列(最优是从大到小填,但不符合树的拓扑序,调整得“若父亲被填其被下一个填”,并查集维护),AGC028C Min Cost Cycle(最优取出极小的 na,b,不合法 O(1) 调整),ARC121D 1 or 2(区间匹配模型,相交不如分离或包含),P9521 [JOISC2022] 京都观光(通过调整,研究只有两种决策时的性质,推广,贪心不降划分,凸包),AGC010E Rearranging(拓扑,给边定向,不妨调整一个三元环是怎么定向的,搜索树),CF725F Family Photos(从只有两叠一张出发调整),CF1844F2 Min Cost Permutation(调整得按升序排最优,最优化字典序考虑逐位贪心),AGC001F Wide Swap(重复调整的结果相当于排序),AGC032E Modulo Pairing(区间匹配模型),P11666 [JOI 2025 Final] 邮局 / Post Office(环上点计算独立,因为方案可以调整,后面不会被前面影响),ARC165F Make Adjacent(对于只有 1122 分讨区间关系调整),AGC036D Negative Cycle(分讨两个保留的边区间关系调整),Qoj # 2599. Anti-stress(旋转,介值定理,二分)。
posted @   s1monG  阅读(3)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示