摘要:
题目链接 "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!)$的。。 想上高斯消元,却又处理不了逆元这个东西、、 无奈去翻题解,,, 发现可以用类似辗转相除法去消,而避免除法,,, 这样子依旧是每次一行减去另 阅读全文