摘要:
题目链接 "BZOJ5301" 题解 莫队水题 BZOJ400AC纪念 阅读全文
摘要:
题目链接 "BZOJ3594" 题解 dp难题总是想不出来,, 首先要观察到一个很重要的性质,就是每次拔高一定是拔一段后缀 因为如果单独只拔前段的话,后面与前面的高度差距大了,不优反劣 然后很显然可以设出$f[i][j]$表示前$i$个玉米,第$i$棵必须选,且共拔高了$j$次的最大值 由之前的性质 阅读全文
摘要:
题目链接 "BZOJ3597" 题解 orz一眼过去一点思路都没有 既然是流量网络,就要借鉴网络流的思想了 我们先处理一下那个比值,显然是一个分数规划,我们二分一个$\lambda = \frac{X Y}{k}$ 如果$\lambda$成立,则 $$\lambda \le \frac{X Y}{k 阅读全文
摘要:
题目链接 "BZOJ3230" 权限题 题解 后缀数组基础题 询问第K大不同子串和正反lcp长度 ~~如果您RE了,您就要知道询问的输入会爆LL~~ C++ include include include include include include define Redge(u) for (in 阅读全文
摘要:
题目链接 "BZOJ5158" 题解 题中所给的最长上升子序列其实就是一个限制条件 我们要构造出最大的以$i$开头的最长下降子序列,就需要编号大的点的权值尽量小 相同时当然就没有贡献,所以我们不妨令权值为一个$1$到$n$的排列 考虑如何满足限制条件 对于所有$a[i] = v$的点,点与点之间一定 阅读全文
摘要:
题目链接 "BZOJ5154" 题解 先跑出一个匹配方案 然后暴力删去每对匹配再检验一下答案是否减小 使用KM算法提升速度 C++ include include include include include include define REP(i,n) for (int i = 1; i (a 阅读全文
摘要:
题目链接 "BZOJ3609" 题解 我们假设最后合成若干个$m$,和$n \mod m$,此时合成次数是最多的,也唯一确定胜利者 可以发现,在轮流操作的情况下,胜利者一定可以将终态变为这个状态 所以只用判奇偶性即可 C++ include include include include inclu 阅读全文
摘要:
题目链接 "BZOJ5157" 题解 我们只需计算每个位置为开头产生的贡献大小,就相当于之后每个大于当前位置的位置产生的贡献 + 1之和 离散化后用树状数组维护即可 要注意去重,后面计算的包含之前的,记录下来减去即可 C++ include include include include inclu 阅读全文
摘要:
题目链接 "BZOJ4031" 题解 第一眼:这不裸的矩阵树定理么 第二眼:这个模$10^9$是什么鬼嘛QAQ 想尝试递归求行列式,发现这是$O(n!)$的。。 想上高斯消元,却又处理不了逆元这个东西、、 无奈去翻题解,,, 发现可以用类似辗转相除法去消,而避免除法,,, 这样子依旧是每次一行减去另 阅读全文