题外话
第五套感觉难度适中,今天把它补掉了。。。
hdu 5343(1001) MZL’s Circle Zhou
Solution
这题深深的暴露了自己$SAM$水平只差,每次遇到$SAM$的题,都不太能做出来,说到底还是对$SAM$理解不够深刻吧= =。。
由于是把两个串拼起来,容易想到,对第一个串正着建立$SAM$,第二个串反过来建$SAM$,用$dp[i]$表示第二个串中以$i$这个字符开头的串有多少个。
然后在第一个串$SAM$节点上,如果不能转移到字母$c$,答案加上$dp[c]$就好了
仔细想想,其实这题并不难= =。。。自己太弱了
Code
hdu 5344(1002) MZL’s xor
Solution
水题,发现不同项都抵消掉了。。。
Code
hdu 5345(1003) MZL’s combat
Solution
貌似有点烦,先跳过= =过段时间补
hdu 5346(1004) MZL’s game
Solution
dp好题,状态设计非常高端,和前几天CC月赛一个题思想非常相似,很好的idea。
正常dp复杂度无法保证,不妨考虑,一个选人顺序的全排列,如果一个人挂了,就继续选下一个人。由于每个人在每个位置概率都是$\frac{1}{n}$,我们不妨考虑编号$1 \sim n$。
这样转化后我们就可以做了!
考虑$dp[j][i]$表示$i$这个人受到$j$次攻击的概率,分两种情况考虑
- (1) 第$i-1$个人没挂,则第$j$次攻击是来自第$i-1$的人的,于是$dp[j][i] = dp[j-1][i-1]\times (1-p)^{j-1}$
- (2) 第$i-1$个人挂掉了,则受到的攻击次数和第$i-1$个人相同,于是$dp[j][i] = dp[j][i-1]\times (1-(1-p)^j)$
于是就做完了,考虑全排列的这种思想,学到了。。
Code
hdu 5347(1005) MZL’s chemistry
Solution
无聊题,随手打个表
Code
hdu 5348(1006) MZL’s endless loop
Solution
类似于一笔画,奇数度的两两连一下,跑欧拉回路就完了
Code
hdu 5349(1007) MZL’s simple problem
Solution
水题,直接用set或者维护一下都可以
Code
hdu 5350(1008) MZL’s munhaff function
Solution
其实这就是个huffman树的生成过程,想明白那个式子和它的转换关系即可
Code
hdu 5351(1009) MZL’s Border
Solution
水题,关于$Fibonacci$的一般打个表就看出规律了,找第一个$i,m+1<|fib[i]|$,答案就是$m-|fib[i-2]|$
Code
hdu 5352(1010) MZL’s City
Solution
很容易想到的做法是,把每个操作$1$拆成$k$个点,与能相连的城市连一条边,跑匹配即可,由于要求字典序最小,倒着跑匹配即可。也可用最大流,费用流来做
Code
完结撒花!
继续补题!>_<