BZOJ-5091 (概率期望)
来源:互联网 发布:淘宝上的好评能删除吗 编辑:程序博客网 时间:2024/05/22 12:15
题目
BZOJ5090
5091: 摘苹果
Time Limit: 1 Sec Memory Limit: 256 MBDescription
小Q的工作是采摘花园里的苹果。在花园中有n棵苹果树以及m条双向道路,苹果树编号依次为1到n,每条道路的两
端连接着两棵不同的苹果树。假设第i棵苹果树连接着d_i条道路。小Q将会按照以下方式去采摘苹果:
1.小Q随机移动到一棵苹果树下,移动到第i棵苹果树下的概率为d_i/(2m),但不在此采摘。
2.等概率随机选择一条与当前苹果树相连的一条道路,移动到另一棵苹果树下。
3.假设当前位于第i棵苹果树下,则他会采摘a_i个苹果,多次经过同一棵苹果树下会重复采摘。
4.重复第2和3步k次。
请写一个程序帮助计算小Q期望摘到多少苹果。Input
第一行包含三个正整数n,m,k(n,k<=100000,m<=200000),分别表示苹果树和道路的数量以及重复步骤的次数。
第二行包含n个正整数,依次表示a_1,a_2,…,a_n(1<=a_i<=100)。
接下来m行,每行两个正整数u,v(1<=u,v<=n,u!=v),表示第u和第v棵苹果树之间存在一条道路。Output
若答案为P/Q,则输出一行一个整数,即P*Q^{-1} mod 1000000007(10^9+7)。
Sample Input
3 4 2
2 3 4
1 2
1 2
2 3
3 1Sample Output
750000011
//期望为5.75=23/4=(23*250000002) mod 1000000007=750000011。
分析
- 对于这种求期望的,记住一点
和的期望等与期望的和
- 对于每个点,我们可以证出在它那里摘的概率是
k∗∑i=1ndi∗ai2∗m - 可以分类看第一步走到它,第二步走到它,第三步,以此类推,概率好像都是一样的。
- 然后弄个逆元(快速幂),就行了。(逆元讲解可以看我这个博客http://blog.csdn.net/jackypigpig/article/details/54232871)
程序
#include <cstdio>#define Ha 1000000007#define add(x,y) (to[++num]=head[x],head[x]=num,V[num]=y)#define For(x) for(int h=head[x],o=V[h]; h; o=V[h=to[h]])int head[100005],to[400005],V[400005],num;int n,m,k,ans,a[100005],d[100005];int ksm(int x,int y){ long long ret=1; for (; y; y>>=1,x=((long long)x*x)%Ha) if (y&1) ret=(ret*x)%Ha; return ret;}int main(){ //printf("%d",ksm(4,Ha-2)); scanf("%d%d%d",&n,&m,&k); for (int i=1; i<=n; i++) scanf("%d",&a[i]); for (int i=1,uu,vv; i<=m; i++) scanf("%d%d",&uu,&vv),d[uu]++,d[vv]++; for (int i=1; i<=n; i++) ans=(ans+(long long)d[i]%Ha*a[i]%Ha)%Ha; ans=(((long long)ans*ksm(2*m,Ha-2))%Ha*k)%Ha; printf("%d",ans);}
提示
- 由于这次测试是晚自习做完英语听力后匆匆赶来机房的,时间不多,看看题,想了想,简单推了一下公式觉得不稳就没想这题了,然后发现我的公式是对的……
- 所以要相信自己,毕竟这公式打出来也很简单,花个五分钟写也不亏啊。
- 对于这种期望的问题,可以对每个元素讨论它出现的概率。
- BZOJ-5091 (概率期望)
- bzoj 2134(概率与期望)
- bzoj 4318: OSU!|概率与期望|dp
- BZOJ 3143 概率期望+高斯消元 解题报告
- bzoj 4008 亚瑟王 期望概率dp
- bzoj 4318 OSU 概率期望dp
- bzoj 4832 抵制克苏恩 概率期望dp
- [BZOJ]1426 收集邮票 概率与期望
- bzoj 3566: [SHOI2014]概率充电器 (概率与期望DP)
- BZOJ 1426 概率/期望DP神题 手推概率DP
- BZOJ 3566 SHOI2014 概率充电器 树形期望DP
- BZOJ 1076 [SCOI 2008] 奖励关 (概率与期望)
- BZOJ 3036: 绿豆蛙的归宿|概率与期望
- BZOJ(本校) 3027 快速傅里叶变换 - 概率与期望&dp
- BZOJ 2337|HNOI 2011|XOR和路径|概率期望|高斯消元
- bzoj 3450: Tyvj1952 Easy (概率与期望dp)
- bzoj 1419: Red is good (概率与期望)
- 【BZOJ 3450】Tyvj1952 Easy 期望概率dp+吐槽
- Oracle中SP与表之间的关系
- 1041. Be Unique (20)
- 【HNOI2010】弹飞绵羊
- 084 定积分总结及习题
- 集合类
- BZOJ-5091 (概率期望)
- 数据结构实验之串一:KMP简单应用
- 集合之ArrayList总结
- 1053. 住房空置率 (20)
- 第4周项目3单链表的应用
- 创建子类student继承父类person
- C# 委托及各种写法
- BZOJ 2467 浅谈不看mod高斯消元惨痛教训及基环树生成树性质分析
- 1055. The World's Richest (25)