07 2018 档案
摘要:题目链接 "CF528D" 题解 可以预处理出每个位置能匹配哪些字符 对每种字符 构造两个序列 如果可以匹配该字符,则该位置为,否则为 如果可以匹配该字符,则该位置为,否则为 将翻转一下做卷积 如果某个字符意义下的某个位置为,就说明出
阅读全文
摘要:题目链接 "uojUNR3B" 题解 如果不输出方案,是有一个经典的三分做法的 但是要输出方案也是可以贪心的 设为节点到最深的儿子的距离 贪心选择大的即可 cpp include include include include include include inclu
阅读全文
摘要:题目链接 "uoj233" 题解 下面不加证明地给出几个性质: 1. 小于的城市一定是没用的 2. 任何城市联通包含且只和联通一次 3. 联通顺序从小到大最优 4. 单个联通比多个一起联通要优 5. 最优解中多个一起联通不超过次 除了最后一个外还是很显然的 足够
阅读全文
摘要:题目链接 "BZOJ2150" 题解 复习: 带上下界网络流两种写法: 1. 不建的的边,即不考虑源汇点,先求出此时超级源汇的最大流,即无源汇下最大的自我调整,再加入该边,求超级源汇最大流增加的流量 2. 先求出【或观察出】的最大流,记为,然后撤销流量,再建立
阅读全文
摘要:题目链接 "BZOJ3235" 题解 求出每个点为顶点,分别求出左上,左下,右上,右下的矩形的个数 并预处理出表示点到四个角的矩形内合法矩形个数 就可以容斥计数啦 枚举顶点,乘上另一侧矩形个数,如图: 但是会算重,对于这样的情况 减去即
阅读全文
摘要:题目链接 "51nod1236" 题解 用特征方程求得斐波那契通项: 那么 $$ \begin{aligned} ans &= \s
阅读全文
摘要:题目链接 "BZOJ3118" 题解 少有的单纯形好题啊 我们先抽离出生成树 生成树中的边只可能减,其它边只可能加 对于不在生成树的边,其权值一定要比生成树中其端点之间的路径上所有的边都大 然后就是一个最小化的线性规划 为了防止限制过多 我们只需对原先生成树中的比该边大的边建立限制即可 然后就是单纯
阅读全文
摘要:题目链接 "BZOJ2322" 题解 鉴于 "BZOJ2115" ,要完成此题,就简单得多了 对图做一遍,形成树,从根到每个点的路径形成一个权值,而每个返祖边形成一个环 我们从根出发去走一个环再回到根,最终会异或上环的权值而又回到根 所以环是可以任意选的 我们把环的权值丢进线性基
阅读全文
摘要:题目链接 "B51nod1229" 题解 我们要求 如果,就是自然数幂求和,上伯努利数即可 否则,我们需要将式子进行变形 要与无关 设 $$F(k) = \sum\limits_{i =
阅读全文
摘要:伯努利数 伯努利数,第项记为,是专门解决自然数幂求和而构造的一个数列 我们先记 那么,不知道为什么 $$S_k(n) = \frac{1}{k + 1}\sum\limits_{i = 0}^{k}{k +
阅读全文
摘要:题目链接 "BZOJ2738" 题解 将矩阵中的位置取出来按权值排序 直接整体二分 + 二维BIT即可 cpp include include include define LL long long int define REP(i,n) for (int i = 1; i 57){if (c ==
阅读全文
摘要:题目链接 "BZOJ1185" 题解 最小矩形一定有一条边在凸包上,枚举这条边,然后旋转卡壳维护另外三个端点即可 计算几何细节极多 1. 维护另外三个端点尽量不在这条边上,意味着左端点尽量靠后,右端点尽量靠前,加上或减去一个来处理 2. 中输出会
阅读全文
摘要:题目链接 "BZOJ3738" 题解 "复习" 同上 但是为了消去因子,处理的时候,乘回时,应同时计算 如果,乘上的逆元 如果$k_1 include include include include i
阅读全文
摘要:题目链接 "BZOJ3193" 题解 注意是小于 第一问,显然按高度降序排序,逐个插入 如果高度各不相同,那么之前插入的都比当前插入的大,可插入的位置个数就确定了 由于存在高度相同的情况,将key作为第二关键字升序排序 这样后面插入的就一定能插入前面插入的之后,统计一下之前插入了$c
阅读全文
摘要:题目链接 "CF960G" 题解 同 "FJOI2016" 只不过数据范围变大了 考虑如何预处理第一类斯特林数 性质 分治$
阅读全文
摘要:"例题" PAM 用以处理回文串问题的一类自动机 每个节点代表一类回文串 节点信息: 回文串长度,fail指针,子节点,出现次数等等 初始化 初始化回文串的时,建立两个节点,长度分别为和,代表奇数回文串和偶数回文串,并标记偶数节点的为奇数节点【当任意长度的回文串都不存在时,
阅读全文
摘要:题目链接 "洛谷P4233" 题解 我们只需求出总的哈密顿回路个数和总的强联通竞赛图个数 对于每条哈密顿回路,我们统计其贡献 一条哈密顿回路就是一个圆排列,有种,剩余边随便连 所以总的贡献为 我们只需求出总的强联
阅读全文
摘要:题目链接 "BZOJ4727" 题解 前置芝士 1.竞赛图存在哈密顿路径 2.竞赛图存在哈密顿回路,当且仅当它是强联通的 所以我们将图缩点后,拓扑排序后一定是一条链,且之前的块内的点和之后块内的点的边一定全都由前面指向后面 而每个块都是强联通的,所以我们从起点出发,一定能找到一条路径走完后面所有点
阅读全文
摘要:题目链接 "BZOJ5305" 题解 妙啊 要求的是所有可能的树形的所有点对距离和 直接考虑点的贡献肯定想不出,这样的所有点对距离问题通常转化为边的贡献 考虑一条边会产生多少贡献 我们枚举节点的父亲边 首先我们认识到一点,按照题中所给的生成树的方式,个节点的树有种形态 我们枚举了
阅读全文
摘要:题目链接 "UVA10498" 题解 模板题 cpp include include include include include include include include include define LL long long int define REP(i,n) for (int i
阅读全文
摘要:题目链接 "BZOJ4868" 题解 最后的答案决定于最后一个公布的成绩 显然这个是答案关于这个时间点是呈凸单调的 三分一下这个时间点 时间点固定,在这个时间前的人都会产生不愉快度,在这个时间前的科目可以往后挪 我们只需贪心选择在这个时间后的科目按哪种方式往前挪 复杂度 cpp
阅读全文
摘要:题目链接 "BZOJ4870" 题解 发现实际是求 $$ans = \sum\limits_{i = 0}^{\infty}{nk \choose i}[i \mod
阅读全文
摘要:题目链接 "BZOJ4919" 题解 链上的维护一个数组表示长度为的最小的结尾大小 我们可以用来维护这个数组,子树互不影响,启发式合并 一个点取更新数组时,只会改变第一个比它大的地方,因为这个点一定是将比它小的位置,只有后位置
阅读全文
摘要:dsu on tree 说白了就是树上启发式合并,基于树剖 适用于不带修改的子树信息查询 复杂度 例题 "CF600E" 对于每个点,暴力统计轻儿子子树信息,最后再统计重儿子 如果该点为重儿子,保留信息 否则再做一遍清空信息 由于每个点到根只有条轻边,
阅读全文
摘要:题目链接 "CF739E" 题解 抓住个数的期望即为概率之和 使用的期望为 使用的期望为 都使用的期望为 当然是用越多越好 但是他很烦地给了个上限,我们就需要作出选择了 有一个很明显的的,显然过不
阅读全文
摘要:自适应辛普森积分 非常简单而自欺欺人的一个东西,,就是拿积分区间中的端点和中点去模拟函数,如果分成两段积与分成一段积差别不大,就认为是这段的积分了 具体地,对于区间,我们认为它的面积为 $$S = \frac{(r l)(f(l) + 4f(\frac{l + r}{2}) + f(r
阅读全文
摘要:题目链接 "BZOJ3688" 题解 将点排序 设表示以第点结尾,有段,最后一段上升或者下降的方案数 以上升为例 $$f[i][j][0] = \sum\limits_{k = 1}^{i 1}\sum\limits_{y_k include include
阅读全文
摘要:题目链接 "洛谷P3676" 题解 我们先维护为根的答案,再考虑换根 一开始的答案可以计算出来 考虑修改,记表示为根的子树的权值和 当节点产生的增量时,只影响到路径上的,权值和都 而对答案的影响是 $$ \begin{alig
阅读全文
摘要:题目链接 "CSU1911" 题解 FWT模板题 cpp include include include include include include include include include define LL long long int define REP(i,n) for (int
阅读全文
摘要:题目链接 "CF662C" 题解 行比较少,容易想到将每一列的状态压缩 在行操作固定的情况下,容易发现每一列的操作就是翻转和,要取最小方案,方案唯一 所以我们只需求出每一种操作的答案 如果操作的行的集合为,那么对于状态为的列,将会变成,同时产生$
阅读全文
摘要:题目链接 "hdu5909" 题解 设表示以为根的子树,一定取,剩余节点必须联通,异或和为的方案数 初始化 枚举儿子转移 $$f[i][j] = f[i][j] + \sum\limits_{x \; xor \; y =
阅读全文
摘要:题目链接 "BZOJ4589" 题解 "FWT" 模板题 cpp include include include include include include include include include define LL long long int define REP(i,n) for (
阅读全文
摘要:题目链接 "BZOJ2436" 题解 看这的数据范围,可以想到区间 发现同一个会场的活动可以重叠,所以暴力求出表示离散化后的完整活动数 我们的目标求出表示必须选时,二者的最小值 我们不妨令选了$[l,r
阅读全文
摘要:题目链接 "BZOJ3142" 题解 题意:选一个正整数和个中的数,使得总和小于等于,求方案数模 题目中$K(M 1) include include include include include include include include define L
阅读全文
摘要:题目链接 "BZOJ2878" 题解 除了实现起来比较长,思维难度还是挺小的 观察数据范围发现环长不超过,而我们去掉环上任何一个点就可以形成森林 于是乎我们枚举断掉的点,然后只需求出剩余每个点为根的答案 设表示从出发等概率走向子树的期望步数 如果为根就是我们所需的答案
阅读全文
摘要:题目链接 "BZOJ2437" 题解 和 "JSOI2014" 很像 只不过这题动态删点 如果我们把空位置看做的话,就会发现我们走的路径是一个交错的路径 然后将图二分染色,当前点必胜,当且仅当当前点必须作为最大匹配的匹配点 移动相当于删点,删点的话只需打个标记即可 判断当前点是不是必选
阅读全文
摘要:题目链接 "BZOJ1443" 题解 既然是网格图,便可以二分染色 二分染色后发现,游戏路径是黑白交错的 让人想到匹配时的增广路 后手要赢【指移动的后手】,必须在一个与起点同色的地方终止 容易想到完全匹配的图先手是必胜的,因为完全匹配的图要么走到对面终止,要么从对面找一条非匹配边走回来,而由于是完全
阅读全文
摘要:题目链接 "BZOJ2007" 题解 这是裸题啊,,要是考试真的遇到就好了 明显是最小割,而且是有来回两个方向 那么原图所有向右的边转为对偶图向下的边 向左的边转为向上 向下转为向左 向上转为向右 然后跑一遍最短路即可 cpp include include include include incl
阅读全文
摘要:题目链接 "BZOJ3112" 题解 同志愿者招募 费用流神题 单纯形裸题 可过 洛谷被卡。。 cpp include include include include include include include include define Redge(u) for (int k =
阅读全文