鉴于我比较菜,所以没有特别好的打题策略。
今天只打了3小时45分钟,所以时间短了。
T1
一个升序数列a,里面的数字互不相同。
要插入一个与数列的数中都不相同的数x,询问ai和x的大小关系,询问的代价为cost[i]。
通过一系列询问,你最终知道了x该插哪,总共花费了C的代价。
求C的最小值。
一眼看上去交互题,逃。
匆匆忙忙打了cost[i]全部等于1的,拿了10分。
不知道他们怎么拿20分的。。。
正解是一个DP。
T2
开场很多人就切了,听说是原题。
DP计数题。
求有多少个字符串,它长度为n,字符集大小为s,并且它不纯在长度>1的回文后缀。
显然设f[i]表示长度为i的回文串,并且它不纯在长度大于1且小于i的回文后缀。
O
(
n
2
)
O(n^2)
O(n2)转移。
令
l
i
m
=
⌊
i
+
1
2
⌋
lim=\lfloor\frac{i+1}{2}\rfloor
lim=⌊2i+1⌋,
则
f
[
i
]
=
s
l
i
m
−
∑
j
=
2
l
i
m
s
l
i
m
−
j
∗
f
[
j
]
f[i]=s^{lim}-\sum_{j=2}^{lim}s^{lim-j}*f[j]
f[i]=slim−∑j=2limslim−j∗f[j]
显然,这个DP符合不重不漏。因为一种不合法字符串刚好被统计到一次。
最后答案为
A
n
s
=
s
n
−
∑
j
=
2
n
f
[
j
]
∗
s
n
−
j
Ans=s^n-\sum_{j=2}^{n}f[j]*s^{n-j}
Ans=sn−∑j=2nf[j]∗sn−j
100分?不会定性分析,只会找规律。
由于数感好,所以设
g
[
i
]
=
∑
j
=
2
l
i
m
s
l
i
m
−
j
∗
f
[
j
]
g[i]=\sum_{j=2}^{lim}s^{lim-j}*f[j]
g[i]=∑j=2limslim−j∗f[j]
g
[
i
]
g[i]
g[i]竟然有规律?!一开始g[i]的规律有点恶心不想写,所以直接DP,但后面的数都是有规律的。
g
[
i
]
=
g
[
i
−
1
]
∗
s
+
f
[
l
i
m
]
,
i
为
奇
数
g[i]=g[i-1]*s+f[lim],i为奇数
g[i]=g[i−1]∗s+f[lim],i为奇数
g
[
i
]
=
g
[
i
−
1
]
,
i
为
偶
数
g[i]=g[i-1],i为偶数
g[i]=g[i−1],i为偶数
交上去就AC了。
T3
某题原题,但是已经离上次AC过了很久了,忘了。
由于第二题花的时间较多,所以第三题没什么时间写50分,前两个数据点写挂了。
k=0,k=1,k=2很容易计算或找规律。
至于前两个数据点,考虑每个点对答案的贡献,也很容易求出。
A
n
s
=
n
∗
∑
i
=
0
n
−
1
i
k
C
(
n
−
1
,
i
)
∗
2
C
(
n
−
1
,
2
)
Ans=n*\sum_{i=0}^{n-1}i^kC(n-1,i)*2^{C(n-1,2)}
Ans=n∗∑i=0n−1ikC(n−1,i)∗2C(n−1,2)
【WC2019模拟2019.1.12】总结
最新推荐文章于 2024-06-10 21:05:27 发布

934

被折叠的 条评论
为什么被折叠?



