算法竞赛经典题目集

math / 数学

inclusion-exclusion / 容斥

个人认为莫比乌斯反演属于容斥内容,不再额外开标签

Integer Partition / 整数拆分

  • CCPC2021 Weihai - M. 810975

    n场比赛,获胜m场,最多连胜k场 => 整数拆分+容斥 传送门

gcd and lcm / gcd lcm 问题

  • CCPC2021 Guangzhou - K. Magus Night

    求n长度数组满足条件gcd≤p且lcm≥q且a_n≤m的总贡献(累乘) => 求gcd≤p且lcm≤q和gcd≥p 传送门

  • cf1575 - G. GCD Festival

    求∑∑gcd(a_i,a_j)⋅gcd(i,j) => 欧拉反演,更换枚举顺序,枚举欧拉函数变元带来的贡献 传送门

  • P2257 - YY's gcd

    求 gcd(x,y)==prime 对数(x≤N,y≤M) => 整除分块,莫比乌斯反演,更换枚举顺序,枚举T=p*k 传送门

  • 17th HLJCPC - E. Exclusive Multiplication

    \(f(n) = \prod_{i = 1}^m p_i^{a_i \% 2}\)\(\left(\sum_{1\leq i < j \leq n} f\left(b_i \times b_j\right)\right)\mod (10^9+7)\) => b[i] = f(b[i]) 求 \(2Ans + n = \sum_{i=1}^n\sum_{j=1}^n\frac{b[i]\cdot b[j]}{\gcd^2(b[i],b[j])}\) 博客未写...

permutation / 全排列问题

  • cf1613 - F. Tree Coloring

    给树的节点赋权值,要求为全排列且\(c_k = c_{p_k} - 1\),求方案数 => 容斥枚举破坏i个条件的方案数D&Cfft 传送门

  • ICPC2021 Shanghai - B. Strange Permutations

    给定排列P,求\(Q_{i+1} \neq P_{Q_i}\)的Q排列方案数 => 找1->n路径,容斥枚举,启发式合并所有环的生成函数 传送门

计数问题

  • 2022 Nowcoder multi-university training 2nd - E. Falfa with Substring

    记 Fn,k 表示串长 n 且 "bit" 串恰好出现 k 次的本质不同字串个数, 求 Fn,0 ~ Fn,k

    \(f_k = 26^{n-3k}\cdot C_{n-2k}^k - \sum_{i=k+1}^nC_i^k\cdot f_i\) 暴力展开右边的 f_i , 算出 \(k!f_k = \sum_{i=k}^n \frac{(-1)^{i-k}}{(i-k)!} \cdot (i!\cdot g_i)\)

    减法卷积, reverse 一个多项式即可

    传送门

期望问题

  • 2022 HDU multi-university training 3rd - A. Equipment Upgrade

    一把武器要升级到 n, 每次尝试升级要花费 ci, 有 Pi 的概率成功升级到 i+1 级, 失败会降级, 降 j 级的概率是 \(\left(1-p_i\right)\frac{w_j}{\sum_{k=1}^i w_k}\)

    记 fi 表示从 0 升到 i 级的概率, 那么 fi+1 则为 fi 加 升级费用 加从 i-j 级升级回 i+1 级的期望(直接相减即可), 之后用分治FFT卷就行

    传送门

Burnside

旋转同构

  • 2022 HDU multi-university training 6th - K. Equipment Upgrade

    对长度为 i 的数组, 每个元素可以为 [0,m-1], 可以对所有元素 +1, 或循环左移 1 位, 以上操作可做任意次, 求从 i 从 1 到 n 下, 本质不同数组数

    对操作 1, 相当于差分后, 得到求和为 km 的 i 长度数组, 对操作 2, 循环移动等价于旋转同构染色问题

    传送门

斯特林展开

  • cf1716 - F. Bags with Balls

    对于 n 长度的数组, 每个元素可以选 [1,m] 中的任意一个值, 一个数组的贡献为该数组中奇数的个数的 k 次方( k≤2000 ), 求所有数组的贡献和

    枚举有 i 个选奇数, 跑个组合数, \(i^k\) 可以斯特林展开

    传送门

DP / 动态规划

计数DP

一维

  • cf1613 - D. MEX Sequences

    \(n \leq 10^5,\ O(n)\)

    求满足第i个数与前i个数的MEX绝对值差<=1的子序列个数 => 最后一个数选i往+2,+1,+0,-2去dp 博客未写...

树背包

  • ICPC2021 Shenyang - L. Perfect Matchings

    $ 2*n \leq 4000,\ O(n^2) $

    给一个完全图删去一颗树计算最大匹配方案数 -> 容斥+树背包 博客未写...

树形DP

  • 17th HLJCPC - C. Tree Division

    给一个树和点权,问是否恰好能将点分为两个子集,使得 A 集合点根据祖先孩子关系递增,而 B 递减 => 树 DP ,共 4 种情况(父A父B子A子B)

    博客未写...

二维

  • 2020-2021 Winter Petrozavodsk Camp - A. Adjacent Rooks

    \(n \leq 5000,\ O(n^2)\)

    给一个n*n阵,每行每列有且仅有1个棋子,问斜对角棋子对数恰好为k的方案数 -> 全排列,枚举每次新增一个数转移的多种情况 传送门

迪利克雷dp(因数倍数转移)

  • cf1614 - D2. Divan and Kostomuksha

    $n\leq 10^5,m=max(a_i) \leq 2\cdot 10^7 \ $, \(O(m\ log\ log\ m)\)

    重排列给定数组使得前i(1~n)个数gcd和的和最大 -> 枚举当前选i作gcd然后dp转移到自己的倍数 博客未写...

剩余背包

  • cf1670 - F. Jee, You See?

    $n \leq 1000, l,r,z \leq 10^{18}\ $, \(O(n^2 \cdot log\ max(r,z))\)

    博客未写...

data structure / 数据结构

哈希

  • 2022 HBCPC - J. Palindrome Reversion

    给一个串,是否能够在仅选取一个区间 [L,R] 翻转一次的情况下,使总串为回文串 -> 正向哈希 + 反向哈希

    \(O(n)\)

    博客未写...

后缀自动机

后缀自动机套线段树合并,倍增询问

  • cf666 - E. Forensic Examination

    给出一个串S,再给m个串Ti​,q次询问S[pl,pr]在T_[l,r]​哪个串出现次数最多

    \(O(n\ log^2\ n)\)

    博客未写...

  • ICPC2016-2017 EC final - F. Mr. Panda and Fantastic Beasts

    给出n个串,问第1个串在不出现在后面n-1个串且长度最小的串是什么(输出字典序最小的一个)

    \(O(n)\)

    博客未写...

  • 2022 Nowcoder multi-university training 3rd - H. Hacker

    给原串 n 长度串 S , 一个 m 长度的权值数组 v , k 个 m 长度的询问串, 要求每个询问串找一个与原串的公共子串, 使得子串所在段的权值和 ( 询问串和权值数组一一对应 ) 最大

    用原串建立后缀自动机, 询问串到后缀自动机上跑, (失配了就往 fail 树跳, 直到该结点能往下匹配, 如果走到根还失配, 说明完全不匹配, 跳过 ) 同时子串长度, 更新为该节点的 len + 1

    传送门

    \(O(n + n log\ n)\)

树状数组

扫描线 + 树状数组维护二维偏序关系

线段树

动态开点线段树

维护最大k个数-1

  • AGM 2020, Final Round, Day 1 - F. Friendly Game

    要注意k=0时的特判

    博客未写...

主席树

  • cf1665 - E. MinimizOR

    给定数组 a ,进行 q 次询问,每次询问 [l,r] 区间内任意两个数逻辑或的最大值

    n 和 q 都是 1e5

    博客未写...

  • Moscow Pre-Finals Workshop 2019. KAIST Contest - F. Fruit Tree

    树上差分可持久化主席树维护路径信息

    博客未写...

李超树

  • Moscow Pre-Finals Workshop 2019. KAIST Contest - H. Hard To Explain

    树上可持久化李超树

    博客未写...

bitset

dp优化

set

维护区间覆盖信息

绝对值

map

维护区间信息

图论

图上 DP 计数问题

最短 / 最短+1 路径数

可走环的路径问题

按位考虑

  • cf1659 - E. AND-MEX Walk

    给一个带权无向连通图,q次询问u->v的所有路径中,使得MEX(w1,w1&w2,...,...&wn)最小的值

    博客未写...

posted @ 2021-11-25 20:44  LacLic  阅读(449)  评论(0编辑  收藏  举报