摘要:
题目链接 "BZOJ5305" 题解 妙啊 要求的是所有可能的树形的所有点对距离和 直接考虑点的贡献肯定想不出,这样的所有点对距离问题通常转化为边的贡献 考虑一条边会产生多少贡献 我们枚举$i$节点的父亲边 首先我们认识到一点,按照题中所给的生成树的方式,$n$个节点的树有$n!$种形态 我们枚举了 阅读全文
摘要:
题目链接 "UVA10498" 题解 模板题 cpp include include include include include include include include include define LL long long int define REP(i,n) for (int i 阅读全文
摘要:
题目链接 "BZOJ4868" 题解 最后的答案决定于最后一个公布的成绩 显然这个是答案关于这个时间点是呈凸单调的 三分一下这个时间点 时间点固定,在这个时间前的人都会产生不愉快度,在这个时间前的科目可以往后挪 我们只需贪心选择在这个时间后的科目按哪种方式往前挪 复杂度$O(nlogn)$ cpp 阅读全文
摘要:
题目链接 "BZOJ4870" 题解 $$ans = \sum\limits_{i = 0}^{\infty}{nk \choose ik + r} \pmod p$$ 发现实际是求 $$ans = \sum\limits_{i = 0}^{\infty}{nk \choose i}[i \mod 阅读全文
摘要:
题目链接 "BZOJ4919" 题解 链上的$LIS$维护一个数组$f[i]$表示长度为$i$的$LIS$最小的结尾大小 我们可以用$multiset$来维护这个数组,子树互不影响,启发式合并 一个点取更新数组时,只会改变第一个比它大的地方,因为这个点一定是将比它小的位置$+1$,只有$+1$后位置 阅读全文
摘要:
dsu on tree 说白了就是树上启发式合并,基于树剖 适用于不带修改的子树信息查询 复杂度$O(n \log n)$ 例题 "CF600E" 对于每个点,暴力统计轻儿子子树信息,最后再统计重儿子 如果该点为重儿子,保留信息 否则再做一遍清空信息 由于每个点到根只有$O(\log n)$条轻边, 阅读全文