3.29模拟赛总结
Posted Flame♡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.29模拟赛总结相关的知识,希望对你有一定的参考价值。
为什么最近一直在犯困啊…
而且睡不醒的现象直线上升,是因为感冒在逐渐痊愈嘛?感冒确实好了很多啦!
有20分没调出来20分没写 挺可惜的
时间安排
7.30-9.30
先看了看题 感觉T1数据结构 T2概率期望 T3 sam上dp吧,感觉t3题意描述特别别扭反复看了好几遍…
先搞了搞T1 先想的莫队,感觉n根号30只能冲四档分,灵机一动觉得线段树不错,写着写着发现问题 merge的时候是线性基大小平方的,于是考虑小块暴力,块长和线性基大小的一半相同,然后其他合并
(还没写,这是想法)
然后开始对着T3dp,感觉sam上dp很别扭 很不好维护那个子串限制,然后就一边想一边自闭还有点困(什么)
9.30-10.20
写了T1的线段树,我原来以为能跑五档,是写的时候才意识到上面分析出来的问题的…然后写完之后开始卡常,本地能把第四档跑过去之后心满意足开溜(然后oj上还是没跑过去,我恨!!!)
10.20-11.00
略微又分析了一下T3之后,茅塞顿开开始写60的kmp)考虑做两遍前缀和就可以了
11.00-12.00
又想了一会T2,最后还是打了暴力,其实我感觉应该前两档的20和后面一档20都可写,不知道为什么赛时没人写 ) 我是最后第一档没调出来,第二档没时间敲了,以后这种活还得放到一开始做qwq
题目分析
T1
见上 考虑线段树维护线性基,小块暴力大块合并,最后复杂度应该略小于 O ( n l o g n l o g W l o g W ) O(nlognlogWlogW) O(nlognlogWlogW)
update
其实这个按端点维护是应该想到的,倒不如说当时考虑了按端点维护,不过选了左端点感觉很奇怪然后就…我泪…
T2
我想的是一个dp, f [ s , i ] f[s,i] f[s,i] 表示当前剩余的物品集合为 s s s ,开了 i i i 枪的期望,转移考虑打中东西和没打中两种。
不知道为什么不对,是不是还要再dp一下概率, 但是感觉这样怪怪的…
update
维护 f [ s , i ] , g [ s , i ] f[s,i],g[s,i] f[s,i],g[s,i] 分别表示表示当前剩余的物品集合为 s s s ,开了 i i i 枪的期望/概率
考虑新开一枪,我们注意到, f f f是带有概率的,但是新的一枪造成的价值 j j j,必须乘上到达 f f f 的概率,才是它对于转移到的 f f f的期望价值
因此转移柿子应该是
可以打中:
f
[
s
x
o
r
(
1
<
<
k
)
,
i
+
1
]
+
=
(
f
[
s
,
i
]
∗
1
m
+
g
[
s
,
i
]
∗
1
m
∗
j
)
f[s~xor~(1<<k),i+1]+=(f[s,i]*\\frac1m+g[s,i]*\\frac1m*j)
f[s xor (1<<k),i+1]+=(f[s,i]∗m1+g[s,i]∗m1∗j)
不可以打中:
f
[
s
,
i
+
1
]
+
=
(
f
[
s
,
i
]
∗
1
m
)
f[s,i+1]+=(f[s,i]*\\frac1m)
f[s,i+1]+=(f[s,i]∗m1)
老实说 在给我一点时间调我也不一定调的出来XD
T3
考虑最后一起计算贡献,对于一个左端点,计算它所有可能的右端点的答案,因为我们可以发现,每多一个右端点,影响的答案是一段后缀
两遍前缀和就好
以上是关于3.29模拟赛总结的主要内容,如果未能解决你的问题,请参考以下文章