鉴于我比较菜,所以没有特别好的打题策略。
今天只打了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(n2)O(n^2)O(n2)转移。
令lim=⌊i+12⌋lim=\lfloor\frac{i+1}{2}\rfloorlim=⌊2i+1⌋,
则f[i]=slim−∑j=2limslim−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符合不重不漏。因为一种不合法字符串刚好被统计到一次。
最后答案为Ans=sn−∑j=2nf[j]∗sn−jAns=s^n-\sum_{j=2}^{n}f[j]*s^{n-j}Ans=sn−∑j=2nf[j]∗sn−j
100分?不会定性分析,只会找规律。
由于数感好,所以设g[i]=∑j=2limslim−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[lim],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很容易计算或找规律。
至于前两个数据点,考虑每个点对答案的贡献,也很容易求出。
Ans=n∗∑i=0n−1ikC(n−1,i)∗2C(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 发布