概率与期望

bzoj2337 XOR和路径

题目大意:无向图中,每个点等概率的选择周围的点走过去,求1~n路径权值(走过边的异或和)的期望。

思路:对边权的二进制每一位单独考虑,因为异或后互不影响。设f[i]表示i~n的路径权值为1的概率,对于每一个点列出方程(注意边权为0/1),高斯消元求出答案。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxnode 20005
#define maxn 105
#define up 30
using namespace std;
struct use{
    double num[maxn];
}a[maxn],b;
int point[maxn]={0},next[maxnode]={0},en[maxnode]={0},va[maxnode][50]={0},tot=0,
    mi[50]={0},du[maxn]={0},n;
void add(int u,int v,int w)
{
    int i=0,x;
    ++tot;next[tot]=point[u];point[u]=tot;en[tot]=v;
    x=w;i=0;
    while(x) {va[tot][++i]=x%2;x/=2;}
    if (u==v) return;
    ++tot;next[tot]=point[v];point[v]=tot;en[tot]=u;
    x=w;i=0;
    while(x) {va[tot][++i]=x%2;x/=2;}
}
void gauss()
{
    int i,j,k;double t;
    for (i=1;i<=n;++i)
    {
        if (a[i].num[i]==0)
           for (j=i+1;j<=n;++j)
              if (a[j].num[i]!=0){swap(a[i],a[j]);break;}
        for (j=i+1;j<=n;++j)
        {
            t=a[j].num[i]*1.0/a[i].num[i];
            for (k=1;k<=n+1;++k) a[j].num[k]-=a[i].num[k]*t;
        }
    }
    for (i=n;i>=1;--i)
    {
        b.num[i]=a[i].num[n+1]*1.0/a[i].num[i];
        for (j=i-1;j>=1;--j)
        {
            a[j].num[n+1]-=b.num[i]*a[j].num[i];
            a[j].num[i]=0;
        }
    }
}
int main()
{
    int i,j,m,u,v,w,t;double ans=0;
    mi[1]=1;
    for (i=2;i<=up;++i) mi[i]=mi[i-1]*2;
    scanf("%d%d",&n,&m);
    for (i=1;i<=m;++i)
    {
        scanf("%d%d%d",&u,&v,&w);add(u,v,w);
        ++du[u];if (u!=v) ++du[v];
    }
    for (t=1;t<=up;++t)
    {
      memset(a,0,sizeof(a));
      memset(b.num,0,sizeof(b.num));
      for (i=1;i<n;++i)
      {
        a[i].num[i]=-du[i];
        for (j=point[i];j;j=next[j])
        {
            if (va[j][t]==0) ++a[i].num[en[j]];
            else
            {
                --a[i].num[en[j]];--a[i].num[n+1];
            }
        }
      } a[n].num[n]=1;
      gauss();ans+=b.num[1]*mi[t];
    }
    printf("%.3f\n",ans);
}

时间: 2024-10-06 21:25:06

概率与期望的相关文章

HDU 4870 Rating(概率、期望、推公式) &amp;&amp; ZOJ 3415 Zhou Yu

其实zoj 3415不是应该叫Yu Zhou吗...碰到ZOJ 3415之后用了第二个参考网址的方法去求通项,然后这次碰到4870不会搞.参考了chanme的,然后重新把周瑜跟排名都反复推导(不是推倒)四五次才上来写这份有抄袭嫌疑的题解... 这2题很类似,多校的rating相当于强化版,不过原理都一样.好像是可以用高斯消元做,但我不会.默默推公式了. 公式推导参考http://www.cnblogs.com/chanme/p/3861766.html#2993306 http://www.cn

【BZOJ-4008】亚瑟王 概率与期望 + DP

4008: [HNOI2015]亚瑟王 Time Limit: 20 Sec  Memory Limit: 512 MBSec  Special JudgeSubmit: 832  Solved: 515[Submit][Status][Discuss] Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂亮.众所周知,亚瑟王是一个看脸的游戏,技能的发动都是看概率的.作为一个

概率和期望DP

概率和期望DP(整理) 概率DP顺着推,期望DP逆着递推求解 概率,又称或然率.机会率.机率(几率)或可能性,是概率论的基本概念.概率是对随机事件发生的可能性的度量,一般以一个在0到1之间的实数表示一个事件发生的可能性大小.越接近1,该事件更可能发生:越接近0,则该事件更不可能发生.人们常说某人有百分之多少的把握能通过这次考试,某件事发生的可能性是多少,这都是概率的实例. 期望就是加权平均. 1.期望值是指人们对所实现的目标主观上的一种估计: 2.期望值是指人们对自己的行为和努力能否导致所企求之

【BZOJ-3450】Tyvj1952Easy 概率与期望DP

3450: Tyvj1952 Easy Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 468  Solved: 353[Submit][Status][Discuss] Description 某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:(我们来简化一下这个游戏的规则有n次点击要做,成功了就是o,失败了就是x,分数是按comb计算的,连续a个comb就有a*a分,comb就是极大的连续o.比如ooxxxxooooxxx

【dp概率与期望】pattern

这是一个比赛题 营销策略 (pattern.cpp/c/pas) [题目描述] W 记的儿童套餐会赠送一份小玩具,赠送的小玩具共有n 种.小朋友买了m 份儿童套餐,求收集齐n 种小玩具的概率.假设每份儿童套餐赠送的小玩具的种类是等概率随机的. [输入格式] 从pattern.in 中输入数据一行,两个整数n,m. [输出格式] 输出到pattern.out 中一个实数表示收集齐小玩具的概率,保留4 位小数. [样例输入] 2 3 [样例输出] 0.7500 [数据规模与约定] 对于10% 的数据

概率和期望类题目综合分析

先给出学习资料吧:kuangbin的博客:  https://www.cnblogs.com/kuangbin/archive/2012/10/02/2710606.html kuangbin的博客里面有3篇论文,讲的非常好,但是有点难(非常难),推荐全部打印下来 首先概率和期望类题目有哪几种做法呢? 用鬲融的总结的话有以下几种:直接计算(这样只要考验你的公式推理,一点代码都不需要)  动态规划的方法(也就是传说中的概率正着算,期望反着求)迭代的方法(其实我分不太清这样和动态规划的区别) 概率-

概率与期望dp相关

概率与期望dp 概率 某个事件A发生的可能性的大小,称之为事件A的概率,记作P(A). 假设某事的所有可能结果有n种,每种结果都是等概率,事件A涵盖其中的m种,那么P(A)=m/n. 例如投掷一枚骰子,点数小于3的概率为2/6=1/3. 如果两个事件A和B所涵盖的结果没有交集,那么P(A或B发生)=P(A)+P(B) 还是掷骰子 P(点数小于3或点数大于4)=2/6+2/6=2/3 如果A和B所涵盖的结果有交集 那么P(A或B发生)=P(A)+P(B)-P(A与B同时发生) P(点数小于3或点数

2017 ICPC Asia Urumqi A.coins (概率DP + 期望)

题目链接:Coins Description Alice and Bob are playing a simple game. They line up a row of nn identical coins, all with the heads facing down onto the table and the tails upward. For exactly mm times they select any kk of the coins and toss them into the

「总结」: 概率与期望

知识点: 概率与期望 知识归类: 数学 胡言乱语·前言 作为一名前后2000万的高清菜鸡(乱入了抱歉) 之前考试遇到概率立即跳,感觉概率的题目都不可做. 今天来死磕概率与期望啦. (可能概率与期望只是个开头.以后会陆续复习一些数学知识.) 另外就是,我写这东西自己复习用的哇,严谨性什么的…… 0/1:定义 定义函数$P(A)$表示A事件发生的可能性大小,称为概率测度. 则A是事件集合$F$的一个子集,并且所有事件$A$都可以看作是样本空间$\Omega$的一个子集,那么合法的三元组$(\Omeg

概率与期望,组合

1.一个图论套路,结合之前的小知识(枚举子集) 例:Online judge 1268,Online judge 1396 询问一个图连通的方案数时,可令Dp一维为图是否连通,另一维是图的二进制表示(完全图可简化为点的个数),从而$Dp[x][0]$可通过$Dp[y][1]$来转移$y\subset x$ 具体来说,可令$x$中任意一个点为定点,枚举其中包含的联通块,同时其他点与该联通块之间不会有线段连接,按照题意列出方程可做到不重不漏.之后通过全集求出$Dp[x][1]$ #include <