8
| 提交统计 | # | 标题 | |
|---|---|---|---|
| 已解决 | 16 / 23 | A | Flip Cards |
| 已解决 | 15 / 19 | B | Distinct Adjacent |
| 已解决 | 13 / 20 | C | Playlist |
| 已解决 | 12 / 13 | D | Unfair Sugoroku |
| 已解决 | 9 / 12 | E | Revenge of "The Salary of AtCoder Inc." |
| 已解决 | 16 / 20 | F | Poisonous Full-Course |
| 已解决 | 14 / 33 | G | Shift vs. CapsLock |
| 已解决 | 11 / 17 | H | Product Development |
| 已解决 | 14 / 17 | I | Defect-free Squares |
| 已解决 | 15 / 22 | J | Maximize Rating |
8
闲话
不知道怎么了,梦熊好像突然开窍了,给我们搞上计数/概率/期望DP了。这是做的最慢的一次,也是做的最难受的一次,我希望梦熊以后还是少放点这种东西吧。(毕竟概率期望太少考了)
A
有 \(N\) 张卡片,有正反两面,两面各有一个数字,要求对于每一对相邻的卡片,他们朝上的一面是不同的,求有多少种翻牌方式,对 \(998244353\) 取模。
这东西,太好做了! 考虑直接 DP ,令 \(f_{i,0/1}\) 为到第 \(i\) 个数,正面或者反面的情况数. 初始化就是 \(f_{i,0}=f_{i,1}=1\) 然后后面直接推就是了.
B
有一个环,在环上要放置介于 \(0\) 到 \(M-1\) 的整数,要求相邻的人不能有相同的数,求有多少种情况,对 \(998244353\) 取模.
对于每一个位置可以维护是否与第一个数相等.
令 \(f_{i,0/1}\) 为 \(i\) 这个数与第一个数不相等/相等. 初始化不要想多了,就按照你状态的设计来做 \(f_{i,0}=0,f_{i,1}=m\) 就好了. 后面递推也是好想的, \(f_{i,1}\) 因为只能是第一个数,并且还要和上一个数不同,所以直接继承上一个数的 \(f_{i-1,0}\) 状态就可以. \(f_{i,0}\) 就麻烦点,需要继承 $f_{i-1,1} $ 和 \(f_{i-1,0}\) 两个状态,根据乘法原理以及题目要求和状态设计,实际上很好得出来递推式, \(f_{i,0}=f_{i-1,0}*(m-2)+f_{i-1,1}*(m-1)\) .
记得取模.
C
有 \(N\) 种小木棍,每种都有无限根,现在我们要把他们拼成一个长木棍,求在 \((x+0.5)\) 处是木棍 \(1\) 的概率.
我真是对于概率/期望一窍不通.
下面是题解搬运.
考虑动态规划,设计状态,\(f_i\) 表示时刻\(i\)正好结果播出某首歌的总概率。所以 \(f_i \to f_i + f_{i \cdot t_j} (1 \leq j \leq N, t_j \leq i)\)。
最后的答案就是 \(f_{x-t_{1}+1} + f_{x- t_{1} + 2} + \cdots + f_{x}\)
为什么呢?
因为第一首歌的播放时间为 \(f_1\) 所以在 \(x - t_1 + 1\) 到 \(x\) 之间都行,把左端点和右端点都加上 \(t_1\) 左端点就变成了 \(x + 1\) ,右端点就变成了 $ x + t_{1}$ 。
怎么样?简单吧.当时可是花了我快一个小时!
D
考虑 \(f_{i,j,t}\) 作为状态表示到 \(t\) 回合,tak走了i步,aok走了j步.
然后就枚举每一步走多少,到第几回合,从什么地方开始走就好了.
E
虽然还是抄的题解,但是......
这道题你就枚举到每一个数字的概率是多少,然后概率乘上这个数字的代价,就顺序下去乘就好咯.
F
做完前面的题之后就觉得这东西好清秀啊,你就模拟就好了,最好做的一道题,没有之一!
G
简单的计数题.按照题意模拟状态设计就可以了.真没啥难度.
H
直接哈希一下搞个背包就行了.次简单的一道题,就是哈希容易坏掉.
I
你发现这个方格的大小只和它的上面,左面,左上面有关.于是递推就好了.第四简单的一道题,因为这东西还需要发现.
J
第三简单的一道题.直接套用背包,题目中公式都给你了,你这还不会就是 yjhhgjxxxxx 了.
总结
怀疑最近梦熊变聪明了,喜欢难度降序是吧.

浙公网安备 33010602011771号