摘要:
手玩样例,挖掘性质 计数题,可以寻找充要条件 从最终答案反推,或观察答案的特点 一些可以套用的巧妙算法,如 Kruskal 重构树、Hall 定理 尝试用已知数据结构直接维护信息 分类讨论 简化题目信息,利于观察 排除一些不可能的答案或状态 寻找中转点,巧妙连接起点和终点 阅读全文
摘要:
原理:性质 \(\to\) 条件 \(\to\) 结论 性质的挖掘,条件的推导: 手玩 由简单到复杂 观察答案的特点 构造思想推导 逆序思考 结论的类型: 条件的转化(由复杂到简单) 去除无用状态,使条件更精简 创造一个条件 阅读全文
摘要:
\(n\log n\) 点对 CodeChef - Minimum Xor Segment 考虑对于三个数 \(1\le i < j < k\le n\),我们观察 \((i,k)\) 什么时候是有用的。 设 \(a_i,a_j,a_k\) 在二进制下的 \(\text{lcp}\) 长为 \(d\ 阅读全文
摘要:
奇怪的性质,必要+充分证充要,猜结论 阅读全文
摘要:
link 一道比较深刻的题目。 考虑条件相当于:对于任意 \(1\) 的个数有限的 \(S\),其所有的长度为 \(2k+1\) 的子串,经过 \(p\) 的映射后 \(1\) 的个数不变。 统计所有的长度固定的子串信息,我们有一个 trick:对于一个长为 \(2k+1\) 的二进制串 \(w\) 阅读全文
摘要:
多点求值 问题:给定一个 \(n-1\) 次多项式 \(f(x)\),求在 \(a_0,a_2,...,a_{m-1}\) 处分别求得的点值。 \(n,m\le 10^5\) 首先我们先钦定 \(n=m\),否则也可以适当补,下文中用 \(n\) 来代替 \(m\)。 设 \(F=[f_0,f_1, 阅读全文
摘要:
dp 优化,去除无用状态(仅保留关键点) 阅读全文