noip模拟赛一

noip模拟赛一

\(6/11\) 因为自己倒数恼羞成怒造数据把其他人 \(T1\) 卡掉了捏
最唐的一集,只过了签到题,最后得分 \(135/500\) 成为机房倒数,部分分都能写挂的那种

T1 分糖果

唐题,赛时糊太快了没有spj,纯纯签到

T2 乒乓球

容易发现这个得分也具有循环节,而状态只有分差,目前到串的位置,二人的得分,得分大于 \(11\) 之后我们就不关心具体是几了,状态其实非常少,暴力跑过去之后判循环节就好了,赛时谁写半天荣获 \(35\) 我不说

T3 与或

一个显然的结论是把或全扔后面一定更大,所以我们先把或全扔后面,之后从前往后枚举能不能把一个或扔前面来,用个数据结构维护一下或者拆成二进制之后用每位的前缀和做都行,\(30\) 暴力写挂了

T4 跳舞

我们发现我们只需要dp枚举上一个转移点即可,即

\[dp_i=\max_{[f(j+1,i-1)=1]}{dp_j+i-j-1} \]

其中 \(f(j+1,i-1)\) 是这个闭区间能否被消除,\(O(n^3)\) 区间dp预处理即可

T5 音乐播放器

好题。
首先容易想到一个结论,因为我们并不关心放了几首歌,只关心放了几种歌,所以如果听到放过的歌完全没有贡献,属于是听了跟听了似的,直接扔掉就好了,和之前dp专题抽牌的一样

发现可以暴力背包 \(O(n^3S)\) 计算没选当前歌曲,快乐值大于等于 \(S-S_i\) 的方案数砍下大部分部分分

考虑优化,因为我们是求方案数,所以式子是

\[dp_{i,j,k}=dp_{i-1,j-1,k-S_i}+dp_{i,j,k} \]

容易发现里面没有 \(\min\) \(\max\) 之类的函数,对于每个 \(j \ge 1,k \ge S\) 都有贡献,我们先dp一次再除去就好了,复杂度 \(O(n^2S)\)

posted @ 2024-07-11 07:28  wang54321  阅读(5)  评论(0编辑  收藏  举报