摘要:
CF286E Ladies' Shop 容易想到一个背包做法,复杂度但显然过不去。 发现如果集合不合法,当且仅当有一些数能凑出集合中没有的数。 进而可以递归地证明,无论是判断是否合法还是检查某个元素是否可以被其它元素拼出,只需要考虑两个元素的情况即可。 因此只需要将所有元素放进一个桶中,自己和自己卷 阅读全文
摘要:
前言与约定 回文树(Palindromic Tree)是一个储存一个字符串所有回文子串的数据结构。 在本文中,作如下约定: \(\Sigma\) 表示字符集 。 \(|s|\) 表示字符串 \(s\) 的长度 。 \(s_i\) 表示字符串 \(s\) 的第 \(i\) 个位置的字符,编号从 \(1 阅读全文
摘要:
首先,讲下什么是线性规划。具有如下形式: 即为一个线性规划问题(它是标准形式,也就是只要能化成这种形式的都是线性规划问题)。 现在我们讲讲什么是对偶问题。 对偶问题的标准形式: 原问题: 对于一个矩阵 \(A\) ,列向量 \(c,b\) ,求: \[ \max c^Tx\\ \\ s.t. \be 阅读全文
摘要:
[AGC005D] ~K Perm Counting 正着不好求,那我直接容斥,用 \(f(i)\) 来表示钦定至少 \(i\) 个地方冲突的方案数。答案就是 \(\sum_{i=1}^n\limits (-1)^i \times f(i)\) 。 这种排列计数可以对应到这样的图上: 所求的排列个数 阅读全文
摘要:
先上单位根反演的公式: \[ [k|n]=\frac {1}{k}∑_{i=0}^{k−1}\limits ω^{ni}_k \] 我们来考虑证明这个公式,分类讨论: 若 \(k|n\),那么: \[ \frac{1}{k}∑_{i=0}^{k−1}\limits ω^{ni}_{k}=\frac{ 阅读全文
摘要:
CF1039D You Are Given a Tree 容易发现,当 \(k\) 不断增大时,答案不断减小,且 \(k\) 的答案不超过 \(\lfloor\frac {n}{k}\rfloor\) ,因此不同的答案个数是 \(\sqrt n\) 级别的,可以用一种类似整体二分的方式求解。 对于一 阅读全文
摘要:
【UNR #5】获奖名单 【UER #9】知识网络 考虑为何复杂度低于 \(n\) 次最短路算法——部分点具有类似信息。大概是同颜色点。那么可以预处理每种颜色的点到每个点的最短路。 然后考虑 \(a → b\) 实际最短路。它与 \(\text{color(a)}\to \text{b}\) 相去不 阅读全文
摘要:
CF547E Mike and Friends \(\text{SAM}\) 或 \(\text{AC}\) 自动机板子题,线段树合并或离线二位数点均可。 点击查看代码 #include<bits/stdc++.h> using namespace std; int n,q; char s[1000 阅读全文
摘要:
【UR #20】跳蚤电话 将加边变为加点,方案数为 \((n-1)!\) 除以一个数,\(dp\) 每种方案要除的数之和即可。 点击查看代码 #include<bits/stdc++.h> using namespace std; int n; int ver[200005],ne[200005], 阅读全文
摘要:
记号与定义 以下定义都是基于每次只能往右上或左下走这一条件的。 也就是说:当你处于 \((x,y)\) 时,你只能走到 \((x+1,y+1)\) 或 \((x+1,y-1)\)。 我们认为一条路径与一条直线的相交次数就是有多少个整点既在路径上又在直线上。 一条路径与一条直线的不相交就是相交次数为 阅读全文