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

2017.8.29 达哥的随单题...

时间:2017-08-29 18:01:38      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:mil   ros   a*   roo   定义   距离   log   font   个数   

给出n个正整数a1,a2…an和一个质数mod.一个变量x初始为1.进行m次操作.每次在n个数中随机选一个ai,然后x=x*ai%mod.问m次操作之后x的取值的期望.

答案一定可以表示成a/b的精确分数形式.a和b可能很大,所以只需要输出a*(b^(10^9+5))模10^9+7的结果.

n<=10^5  m<=10^9  mod<=10^3  1<=ai<mod

solution

考试时明白了原根是什么,只可惜我就是脑子抽风,不会dp...

80分:

定义 f[i][j] 表示乘到第i次,x=j的概率 (当然概率是%1e9意义下的概率)

由于m很大,而状态转移可以写成矩阵乘的形式,所以可以用矩阵乘法优化到O(mod^3*logm)

100分:

O(n^2)求出mod的原根(原根rt:rt的1次方,2次方,...,mod-1次方可以取到1~mod-1的所有数)

所有的ai都可以用rt^k表示

所以这时 f[i][j] 表示乘到第i次,rt^j的概率,然后矩阵乘把状态矩阵输出,发现是循环矩阵

之后就优化到了O(n^2*logm)

给一个n个点的树,有n-1条边,每一个点有一个权值,定义a[i]为i这个点的权值,定义dis(i,j)为i到j的树上距离,dis(i,i)=0

定义b[i]=∑a[j]*dis(i,j)

有两种情况:

1.给定a[i],求出b[i]

2.给定b[i],求出a[i]

solution

对于树上的一对fa和son,我们发现b[fa]和b[son]的差别只是由于他俩之间的边做出贡献

定义 sum为整棵树的取值之和 pre[i]=sum-val[i](以i为根的子树权值和) suf[i]=val[i]

而 pre[i]和suf[i] 都是可以通过一遍O(n)的dfs求出

那么得到n-1个关系 b[fa]-b[son]=-pre[fa]+suf[son]

第一种情况:

由b[fa]可以推到b[son] 即

b[son]=b[fa]+pre[fa]-suf[fa]

所以先dfs一遍求出b[root]

再递推即可

第二种情况:

b[fa]-b[son]=-pre[fa]+suf[son]+ sum=pre[fa]+suf[son]

                  ↓

b[fa]-b[son]=2*suf[son]-sum

把n-1个关系相加得

temp=2*(∑suf[k](1<=k<=n,k!=root))-(n-1)*sum的值

得到的n-1个关系 只是a[i]之间的关系,与它们的具体取值无关

而 b[root]=∑suf[k](1<=k<=n,k!=root)

(temp+b[root]*2)/(n-1)=sum

求出来sum再回代即可求出suf[i],最后差分求出a[i]

你在平面直角坐标系上.

你一开始位于(0,0).

每次可以在上/下/左/右四个方向中选一个走一步.

即:从(x,y)走到(x,y+1),(x,y-1),(x-1,y),(x+1,y)四个位置中的其中一个.

允许你走的步数已经确定为n.现在你想走n步之后回到(0,0).但这太简单了.你希望知道有多少种不同的方案能够使你在n步之后回到(0,0).当且仅当两种方案至少有一步走的方向不同,这两种方案被认为是不同的.

答案可能很大所以只需要输出答案对10^9+7取模后的结果.(10^9+7=1000000007,1和7之间有8个0)

这还是太简单了,所以你给能够到达的格点加上了一些限制.一共有三种限制,加上没有限制的情况,一共有四种情况,用0,1,2,3标号:

0.没有任何限制,可以到达坐标系上所有的点,即能到达的点集为{(x,y)|x,y为整数}

1.只允许到达x轴非负半轴上的点.即能到达的点集为{(x,y)|x为非负数,y=0}

2.只允许到达坐标轴上的点.即能到达的点集为{(x,y)|x=0或y=0}

3.只允许到达x轴非负半轴上的点,y轴非负半轴上的点以及第1象限的点.即能到达的点集为{(x,y)|x>=0,y>=0}

typ=2,n<=1000  typ=3,n<=100000   typ=1,n<=100000  typ=0,n<=100000

solution

tpy=

2017.8.29 达哥的随单题...

标签:mil   ros   a*   roo   定义   距离   log   font   个数   

原文地址:http://www.cnblogs.com/A-LEAF/p/7449314.html

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