后发现自己是zz的补题
D. Segment Intersections
题意:
这题大概的意思就是说给两个区间,这两个区间分别有$n$个,记为$a_n$和$b_n$,每一次可以对其中一个区间进行左端-1和右端+1的操作,每次操作$+1cost$,记区间长度为$r-l$,问最少需要多少次操作,使$\displaystyle \sum_{i=1}^{n}len(a_i \cap b_i)\ge k$。
题解:
不难看出俩区间只有两种情况,相交和不相交。
$\bullet$相交的时候,将所有的区间弥合成$max(r1,r2)-min(l1,l2)$,剩下的再每次操作2次增加1。
$\bullet$不相交的时候,我们要考虑的是让多少个区间先弥合,然后用2换1,$O(n)$暴力枚举即可。
AC代码:
1 | //I am so vegetable |
E. Calendar Ambiguity
题意:
有一个奇怪的日历,一年有$m$个月,一个月有$d$天,一周有$w$天,定义一个数对$
题解:
$x$月$y$日可转化为一周中的第$(xd+y)\%w$,则问题可转化为求满足$(xd+y)\equiv(yd+x)(\mod w)$的数对$\{x,y\}$,化简一下公式可以得到$(y-x)(d-1)\equiv0(\mod w)$,即$(y-x)(d-1)=kw$,而$d-1$是一个常数,则$kw$能将$d-1$吸收掉,即化简为$y-x=k\frac{w}{gcd(w,d-1)}$,规律很容易就能找出。
1 | //I am so vegetable |
- 本文作者: baddog
- 本文链接: https://katoli.github.io/2020/09/11/Educational-Codeforces-Round-92/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!