2019.11.09【NOIP提高组】模拟 A 组 总结

今天校庆!!!(祝纪中85周年快乐!)
当然,我们也表演了,节目为《我和我的祖国》。
不错,但到了(9:00)多才到机房。感觉(GG)

考场:(80 + 100 + 0 = 180)

T1:
期望问题,打表找规律
我们对于这个序列的第(i)位,可以发现:
需要生成第一次为1,生成第二次为(i/n),生成第三次为(i*i/n/n),。。。
所以我们可以得到答案为(sigma(i,1,n)n/i)。(具体不详)
或者我们也可以推出递推式,(F(i)=i/n*(F(i)+1)+(n-i)/n*(F(i-1)+1)),然后得出。
然后可以分段打表。
当然,还有个欧拉公式:
(1/1+1/2+1/3+...+1/n=ln(n)+C(约等于0.577215664901532860606512090082402431042159335)+1/(2*n).)
对于此题,可以直接套用。

T2:
很容易想到先将询问排序,然后在依次加入可加入的边,用并查集维护每个块,答案也很容易求出。实打实的签到题。

T3:
看完题,自然地想到了将字符串排序。
然后对于前缀,我们可以用二分来求出所在的区间。
对于后缀,我们可以将字符串反着建个(trie),然后对于(trie)上的每个节点都建一个线段树,表示当前子树所包含的字符串(有为1,没有为0)
对于询问,我们就可以找到后缀在(trie)上的位置,求出线段树中前缀求出来的区间的权值和,即为答案。

【友情提示】
字符串全部由小写字母a到j组成,行末保证没有多余字符,没有多余的空行,没有空串

注意范围(a)~(j)!!!,我就空超了,然后调了将近一个小时。。。

转载需注明出处。
原文地址:https://www.cnblogs.com/jz929/p/11826544.html