图
文章平均质量分 57
nKessi
这个作者很懒,什么都没留下…
展开
-
采花 题解
题面 样例 10 3 2 3 2 4 5 1 2 5 6 2 2 3 4 5 3 7 6 6 7 7 30 分析 (p.s.在这篇文章中,最大链指所有儿子到根节点的路径中最大的那一条) 易想到缩点。 发现缩点后连反边是一棵树(其实是森林)。 于是问题就转化为,给你一棵树,从中找 kkk 个叶子|使他们到根节点的路径|所有节点的并集|的权值和最大,这样每次找权值和最大的那一条即可,找到后直接向上爬每个元素更新,再加个线段树+优先队列,可以做到 O(klog22(n))\mathcal {O}(klog原创 2021-05-04 17:26:17 · 139 阅读 · 0 评论 -
分组 题解
题面 样例 6 12 8 1 2 2 3 3 4 3 2 3 1 4 1 4 5 1 5 6 5 5 6 3 6 6 3 3 分析 可以说是一个套路/思维模式吧 不难想到 O(n3/k)\mathcal{O}(n^3/k)O(n3/k) (kkk 为常数)的暴力,二分优化一下 O(n2log2(n))\mathcal{O}(n^2log_2(n))O(n2log2(n))。 考虑时间复杂度为什么会这么高,发现是二分时进行了太多冗余的操作。 考虑缩短二分上下界。不妨设现在要取的边的数量为 ttt,原创 2021-04-29 13:37:53 · 627 阅读 · 0 评论 -
[九省联考2018]劈配
link 分析 70pts70pts70pts 的暴力很显然。 考虑正解,全题最大的难点就是怎么选同一志愿中的老师。感觉似乎不好选,不妨跳出这个想法,你会发现同学和老师有着对应关系,想到了什么?匈牙利算法!于是,我们直接在里面找增广路即可。 但是还有个问题,一个老师可以选多个学生,我们将找增广路变形一下即可。这样就可以回答第一个问题了。对于第二个问题,显然二分,预处理出前 iii 个同学选完老师后连边的状态即可。 有点微微难码。。。 Code #include <cstdio> #include原创 2021-04-12 09:46:49 · 113 阅读 · 0 评论