前言
本来今天 sssy 把国庆前一天上课调到了今天,然后放
题目
同样的,好题放前面...
[ARC107D] Number of Multisets
Solution
非常好的一个动态规划题,开阔了视野...
看到数据,很容易可以先想到先设
分数很不好搞,最大是整数
接下来就很巧妙了,我们不能局限于前一个状态
最后留下一个问题,怎么证明这个转移方程是不重不漏的:
不重:由
不漏:本蒟蒻太弱了,呜呜呜...
某题
闲话
考场已经推出性质了,为什么要卡我线段树...
st表忘了怎么办...
题意
给定一个长度为
令
Solution
这很水啊,主要要想到用二分...
首先看到要求一段区间的“与”和“或”,那明显可以用线段树维护(考场是这样想的),其实最后处理这题最优的是st表,因为没有修改操作...
普遍都会确定一个点
- tip:
区间的或肯定会增加,其的与肯定会减少,那么由上面的 tip 可以知道
虽然我没想到这个 tip(忘了),不过没关系,我还是推出来了,考虑拆位处理,再分别想“或”部分和“与”部分,结合“异或”处理找规律即可啦!也许今天能推出来,以后不一定了(bushi,所以还是记住 tip 吧!
线段树+二分:
st表+二分:
最后我想说,位运算的题拆位真的很好做...
[ABC285E] Work or Rest
闲话
首先是看错题,然后是纠结于前一周的最后一个假期对这个周第一个假期的影响,最后发现想多了...
Solution
用手模拟模拟,可以发现对于两个假期
然后直接一个普通的dp求解,现在还有一个问题:
- 一周的最后一个假期对这个周第一个假期的影响怎么解决。
观察一下又可以发现假期所在的位置其实不影响最后的答案,所以我们可以把所有假期都往前移,将第一个假期移到第一天就好处理了。
别忘了还要加上最后一个假期后的工作日的贡献。
SP9650 TRIPINV - Mega Inversions
只不过要加个离散化...
zsq出的题其实不是这道,但差不多,把本题中的大于改为小于罢了。
Solution
按照这题讲吧,比较板了吧,要求