10 2021 档案
摘要:感觉JOISC的题目要么很经典,要么很妙,所以特意来刷一下。 Day 1 T1「JOISC 2014 Day1」巴士走读 考虑到时刻的种类数不超过种,因为肯定是第一个点有一条边开通了然后对其造成了影响,所以可以处理出种然后每次查询二分。 我们考虑时间降序加入号点的出边。并对于每个点
阅读全文
摘要:题面传送门 发现要维护的东西很奇怪。 想到gcd有性质:一个长度为的区间只有种前缀。 然后我们可以合并两个区间,每个区间维护前缀后缀。 就是暴力枚举左右两边看看是不是gcd不为1然后算入答案。 扔到线段树上这样是实际上跑不满。 cod
阅读全文
摘要:题面传送门 我们发现我们并不能求出恰好被碾压的人数,但是我们可以求出至少有个被碾压的人数。 具体的,先钦定个人一定被碾压,然后剩下的乱选,我们就可以得到答案了。 发现这个计算过程需要枚举B的分数,然后计算,发现这个是一个次多项式,那么拉格朗日插值就好了。 时间复杂度
阅读全文
该文被密码保护。
摘要:题面传送门 遇到这种按路径长度计算代价的考虑分层。 设为树高为,包含了集合为的答案的最小答案。 考虑枚举最后一层是什么,然后从前面转移。 每个最后一层的点从前面所有点中找到最优的点连接上去。 但是其实不是每个点连的边都是最后一层的。 其实如果不是最后一层只会让答案变劣,
阅读全文
摘要:F1 首先因为左下和右上的操作都是可以用两个左上操作做掉的而且一定不会更劣。 所以我们要关心的就是右下的操作。 手玩可以发现一次右下的操作是可以替换四次左上的操作更优,但是两次就可以被左上等代价替换掉,所以只要看有没有四个左上能被一次右下替换掉就好了。 时间复杂度 code: #inc
阅读全文
摘要:题面传送门 确实是一道比较妙的交互题。 首先那个gcd是假的,因为gcd不会变大,所以最大的gcd就是最大的一条边。 然后我们就是要找到最大的一条边。 我们要找到一个边的顺序,使得这些边一定是这些点中的最大值。 一个简单的想法就是按照bfs序拿来加边,然后直接二分就好了。 询问次数$O(1+logn
阅读全文