码迷,mamicode.com
首页 > 其他好文 > 详细

提高组模拟赛总结(3)

时间:2017-09-29 01:42:44      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:const   big   情况   dag   路径   起点   prim   无法   通过   

貌似是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)

提高组模拟赛总结(3)

标签:const   big   情况   dag   路径   起点   prim   无法   通过   

原文地址:http://www.cnblogs.com/mangoyang/p/7609050.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!