摘要:
描述 该做法解决了一类“广义差分约束”问题(当然名字是我自己取的),除了可以解决常见的求解 \(A_1+c_1\geq A_2,A_2+c_2\geq A_3\dots\) 问题外,还可以求解形如“如果 \(A_1\geq c_1\),那么 \(A_2\geq c_2\)”这样涉及条件逻辑运算的问题 阅读全文
摘要:
本文哈希数组均为 1-index,原始字符串均为 0-index。 哈希值类 typedef unsigned long long ull; ull bs=13131,bspw[MAXN+5]; inline void init_bspw(){ bspw[0]=1; for(int i=1;i<=M 阅读全文
摘要:
涉及知识点:Ad-hoc,贪心 题意 Link 给出两个长度相同的字符串 \(S,T\),定义一次操作为: 从头至尾处理每一位,每位可以变成上一位,或者不变。 求最少对 \(S\) 进行多少次操作使得 \(S=T\)。 思路 引理 可以发现,一次操作其实类似于选择一些点 \(l\),从左到右覆盖它后 阅读全文
摘要:
涉及知识点:就是个推式子+贪心? 前言 感觉有点板,故记录一下以备后续所用。 题意 有两个 $ n\times m$ 的矩阵 \(A\) 和 \(B\),每次操作可以把 \(A\) 或者 \(B\) 的某一行/列全部 \(+1\),最少几次操作 \(A=B\)? 思路 首先想到的肯定是构造一个差分矩 阅读全文
摘要:
涉及知识点:反悔贪心 前言 最近开始写 CSP 模拟的题,实际上考的题一点也不 CSP。 题意 有一个长度为 \(n\) 的序列 \(A\),\(0\leq A_i<k\),你可以每次选取一个区间,将区间内所有元素 \(+1\),然后将区间内所有元素对 \(k\) 取模。问最少几次操作可以把序列中所 阅读全文
摘要:
题意 给一个长度为 \(n\) 的排列 \(a\),和一个 \(3\) 的排列 \(p\)。求问 \(a\) 有多少长度为 \(3\) 的子序列,满足将其中的元素从小到大编号后为 \(p\)。 思路 仔细手玩一下会发现很难找到一个对于任意 \(p\) 的通解,实际上 \(p\) 的情况可以做一些合并 阅读全文
摘要:
退背包介绍 之前居然完全没了解过“退背包”,其实是个很易于接受的思路,看了下最简单的板子题居然是个黄题,离谱。 退背包的原理在于根据题意与状态设计,阶段顺序并不影响最终的答案,因此之前某个阶段的贡献是可以撤销的。 具体撤销的方法就是通过原先从 \(f_{i-1}\) 转移到 \(f_i\) 的状态转 阅读全文
摘要:
涉及知识点:博弈论 题意 在一个树上,A 和 B 可以通过边在节点间移动,每回合可以不移动,或者移动到有边直接连接的节点。A 在抓 B,当 A 与 B 处于同一个节点时即为被抓住,可以发现无论如何 B 最后都会被抓住,你需要添加最小数量的边使得 B 有策略可以永远不会被抓住。 思路 最终的必败态是 阅读全文
摘要:
题意 设 \(A,B\) 为两个长为 \(n\ (\leq50)\) 的排列,定义操作 \(F(A,B)=\sum\limits_{i=1}^{n}\max(A_i,B_i)\),给定 \(n,k\),求有多少种有序对 \((A,B)\) 满足 \(F(A,B)\geq k\),答案模 \(10^9 阅读全文
摘要:
结论 树上一个点 \(x\) 到路径 \(u\rightarrow v\) 的最短距离为: \[dep[x]+dep[\operatorname{lca}(u,v)]-dep[\operatorname{lca}(x,u)]-dep[\operatorname{lca}(x,v)] \]其中,\(d 阅读全文
摘要:
涉及知识点:数位DP 前言 其实这题也没啥好写的,就是好久没做大模拟调代码把人调废了,警醒一下自己…… 题意 大模拟,不给简化题意了 \(n\leq 10^5\)。 思路 大递推 DP 里面套小数位 DP,挺恶心的。 设 \(f_i\) 为以第 \(i\) 字节结尾的方案数,每次考虑用 \(4\) 阅读全文
摘要:
涉及知识点:二进制,贪心 题意 给一个数组 \(a[1], a[2], \ldots, a[n]\),选择一个数 \(b\),如果 \(b\) 满足: \[(a[1]\oplus b) \leq (a[2]\oplus b) \leq \ldots \leq (a[n]\oplus b) \]则称 阅读全文