提高组模拟赛总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了提高组模拟赛总结相关的知识,希望对你有一定的参考价值。

貌似是tyvj 2012年的题?

T1:给出一个有向无环图,起点为1终点为N,每条边都有一个长度,并且从起点出发能够到达所有的点,所有的点也都能够到达终点。绿豆蛙从起点出发,走向终点。
  到达每一个顶点时,如果有K条离开该点的道路,绿豆蛙可以选择任意一条道路离开该点,并且走向每条路的概率为 1/K 。
  现在绿豆蛙想知道,从起点走到终点的所经过的路径总长度期望是多少?

刚看到题目,歪歪斜斜的每页上都写着‘水题’几个字。我横竖睡不着,仔细看了半夜,才从字缝里看出字来,满本都写着一个字是‘坑’!”

显然是个DAG,拓扑排序,然而写完之后发现死活过不去样例,这个时候有人和我说概率是通过入度是边的数量算的

于是就改了一下,过了样例,但是这样正着写对拍是过不去的

考虑如果只算入度的概率,其保证正确性必须要在入度的几条路径都是等概率的情况下,否则概率无法简单的1/k计算,这条路径的概率需要结合之前的期望推过来,然而正着算的话并不能

于是就(正难则反)雾,改为从n到1算,然后就愉快的AC了

 

T2:

给定一个整数n,求一个整数m,满足m<=n,并且m/phi(m)的值最大。
  注:phi(m)代表m的欧拉函数,即不大于m且与m互质的数的个数。

对于10%的数据, n<=1000
  对于30%的数据, n<=1010
  对于60%的数据, n<=102000
  对于100%的数据,T<=100,n<=1025000。

找规律发现,满足一个数欧拉函数尽可能小,当且仅当乘上一个不为其因子倍数的数,就是互质,于是只要连续乘上质数,就能保证答案的正确性

即找到 m = prime[1] * prime[2] *.. *prime[k] 使得m+1恰好第一次> n

然而这样只有70分,由于询问次数过多,复杂度比较大

但是考虑无论询问多少组,k最大也只求到当中值最大的那一组的值,于是就可以离线了,对高精度数的排序虽然有点坑,但是sort还是轻松解决

另外发现了一个玄学的东西 inline bool cmp(BigNum A, BigNum B) 比 inline bool cmp(const BigNum &A, const BigNum &B)要慢很多,前者甚至只能得70

 

T3:

据说是一个拆点二分图,实在是太神了,看来只有联赛以后能来填坑了(flag)







以上是关于提高组模拟赛总结的主要内容,如果未能解决你的问题,请参考以下文章

提高组模拟赛总结

提高组模拟赛总结

2016.5.21初中部 NOIP提高组模拟赛A? 总结

NOIP2016提高A组模拟10.15总结

NOIP2016提高A组模拟8.14总结

NOIP2016提高A组模拟9.9总结