摘要: 这道题真的把我秀到了,我首先猜了一波结论,打了一个可持久化 \(\text{Trie}\) 加二分的两只 \(\log_2\) 的做法,发现不能 \(PP\) ,然后就一直改到比赛结束还没改过。 然后比完赛的时候改出来了,发现 \(WA\) \(on\) $51$ ,心想好像比赛时改没改出来好像没什 阅读全文
posted @ 2020-11-30 08:17 Point_King 阅读(283) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2020-11-27 13:43 Point_King 阅读(3) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2020-11-27 07:37 Point_King 阅读(2) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2020-11-26 15:04 Point_King 阅读(2) 评论(0) 推荐(0)
摘要: 我是蒟蒻,这个东西机房人均都会了,只有我还不会,只能爬了。 后缀数组的实现 倍增算法 我们可以先比较每一个后缀的第一个字符,然后我们发现在进行下一步比较的时候,就可以利用前一步得到的进行比较了。 这里边体现了倍增的思路,其实放一张比较经典的图就可以明白了: 基数排序 我们可以发现,在上述算法的执行过 阅读全文
posted @ 2020-11-26 07:02 Point_King 阅读(144) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2020-11-26 07:01 Point_King 阅读(3) 评论(0) 推荐(1)
该文被密码保护。 阅读全文
posted @ 2020-11-24 17:08 Point_King 阅读(4) 评论(0) 推荐(0)
摘要: 题解 尝试做一下,感觉是每次取一段前缀和,这样就相当于让我们证明在 \(a_i\le 10^{12}\) 时,不可能构造出隔一个取一个的情况(\(n=10^5\))。 a[i]: 1, 2, 3, 5, 6,11,12,23,24... s[i]: 1, 1, 4, 4,10,10,22,22,46 阅读全文
posted @ 2020-11-23 21:46 Point_King 阅读(153) 评论(2) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2020-11-23 17:04 Point_King 阅读(6) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2020-11-23 17:02 Point_King 阅读(2) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2020-11-20 18:10 Point_King 阅读(5) 评论(2) 推荐(0)
摘要: 草稿 我们考虑现在已知点集,如何求最后的答案。发现答案就是求所有点构成的最小生成树的边权和减去最小生成树直径。 嗯……这个东西我好像不会动态维护啊。 哦,发现要回到最初转移到的村庄,那不就是两倍的最小生成树的边权吗,题目变简单了一点。 现在就是考虑动态维护最小生成树的边权和,我们考虑将边权下放。那么 阅读全文
posted @ 2020-11-19 21:16 Point_King 阅读(101) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2020-11-19 18:29 Point_King 阅读(4) 评论(2) 推荐(0)
摘要: 一边写草稿一边做题吧。要看题解的往下翻,或者是旁边的导航跳一下。 草稿 因为可以开展贸易活动的条件是存在一种通用语 \(L\) 满足 \(u_i\) 到 \(v_i\) 的最短路径上都会 \(L\) 。所以我们考虑能够带来贡献的,只有同一次传教。 但是很有可能在进行当前这一次传教过程中,中间的两座城 阅读全文
posted @ 2020-11-19 11:46 Point_King 阅读(114) 评论(0) 推荐(0)
摘要: 这道题唯一重要的是告诉了我一条直线上带权选址问题的通解。 题解 先将所有点根据距离排序,选址点 \(x\) 即是距离最左边的距离最小的点且满足: \[ \sum_{i=l}^x w_i \ge \sum_{i=x+1}^r w_i \] 然后用树状数组和线段树维护一下就可以了。 代码如下 #incl 阅读全文
posted @ 2020-11-18 12:02 Point_King 阅读(77) 评论(0) 推荐(0)