Noip 模拟 6 2018/10/23

T1:浮躁 (fickle)
阿杰在上班会数学课:“最近有些同学很浮躁……”
早已习惯的你,在想这样一个问题:
共有$ n$ 种竞赛,对于其中任意 i 种竞赛 ( 1 ≤ i ≤ n ) (1≤i≤n) (1in),有 a i ai ai 个人同时参加,问有多少个人参加了至少一门竞赛?
阿杰还在滔滔不绝,你却陷入了深思。

第一眼看上去,嗯,简单题,乱搞就好
等一下,没有取模
发现高精会TLE,然后就不会了
正解:因为 a [ i ] ∗ n &lt; = 1 e 9 a[i]*n&lt;=1e9 a[i]n<=1e9,那么就去一个大于 1 e 9 1e9 1e9的模数就好了

T2:想象一下 (imagine)
我们高大的老班举起了有半个他那么高的三角板,说:“你们想象一下——”
于是你就陷入了想象……
有一棵 n 个点的树,每个叶子节点上都有一个人,他们按照每秒钟走一条边的速度向树根(节点 1)前进。
你可以运用 k 次想象之力,让某一个节点(除了根节点)上的所有人瞬间(耗时为 0)转移到这个节点的父亲上。
你想知道最少需要多少时间,所有人可以到达根节点。

通过观察可以发现,如果在一个叶子节点转移,那么一定没有在父亲节点转移来得优
又发现,如果一棵树有 m m m条边,那么就可以使用 m m m次转移让所有的点都到达根节点
那么我们可以让所有的转移都在尽量靠近根节点的地方,那么一定是最优的
然后用类似于拓扑的方法模拟叶子节点的上跳,同时将它删除,当剩余的边数<=k时,上跳的次数就是答案

T3:超简单 (super)
有一个 n 面的骰子,第 i 面的数是 vi,朝上的概率是 pi。
教室的最后一排有一个人,不停地抛这个骰子,直到某一面朝上了两次,就停止抛骰子,但他不知道所有朝上的面的数字的和的期望 E 是多少。
老班一脸嘲讽:“这不是超简单嘛。”

事实证明,是真的TM”超简单“
a n s = ∑ i = 1 n ∣ s ∣ ! ∑ ( p i ∗ P s ∗ ( v i + V s ) ) ans=\sum_{i=1}^{n}|s|!\sum (pi*Ps*(vi+Vs)) ans=i=1ns!(piPs(vi+Vs))
1,⋯,n的一个含 i 的子集 s
其中Ps为s中所有元素的积,Vs为s中所有元素的和。
f ( i , j , k ) f(i,j,k) f(i,j,k) 表示前 i i i面, ∣ s ∣ = j |s|=j s=j,最后一次朝上的面是 k k k k k k不一定在前 i i i面内)的情况下,上述的第二重和式的值为多少。
转移会发现缺少一个 P s Ps Ps的和,设其为 g ( i , j , k ) g(i,j,k) g(i,j,k)
f [ i ] [ j ] = f [ i − 1 ] [ j ] f[i][j]=f[i-1][j] f[i][j]=f[i1][j]
g [ i ] [ j ] = g [ i − 1 ] [ j ] g[i][j]=g[i-1][j] g[i][j]=g[i1][j]
i ! = k i!=k i!=k
f [ i ] [ j ] + = j ∗ f [ i − 1 ] [ j − 1 ] ∗ p [ i ] + g [ i − 1 ] [ j − 1 ] ∗ p [ i ] ∗ v [ i ] f[i][j]+=j*f[i-1][j-1]*p[i]+g[i-1][j-1]*p[i]*v[i] f[i][j]+=jf[i1][j1]p[i]+g[i1][j1]p[i]v[i]
g [ i ] [ j ] + = j ∗ g [ i − 1 ] [ j − 1 ] ∗ p [ i ] g[i][j]+=j*g[i-1][j-1]*p[i] g[i][j]+=jg[i1][j1]p[i]
答案就是 ( j + 1 ) ∗ ( p [ k ] 2 ∗ f [ n ] [ j ] + 2 ∗ p [ k ] 2 ∗ v [ k ] ∗ g [ n ] [ j ] ) (j+1)*(p[k]^2*f[n][j]+2*p[k]^2*v[k]*g[n][j]) (j+1)(p[k]2f[n][j]+2p[k]2v[k]g[n][j]),求和即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值