• BZOJ3036: 绿豆蛙的归宿


    【传送门:BZOJ3036


    简要题意:

      给出一个有向无环图,并且保证每条路径的起点为1,终点为n,且每条边都有权值

      如果从一个点能到达k个点,那么它将会有1/k的概率走其中一个点

      求出从起点到终点的期望


    题解:

      期望DP,DFS逆推


    参考代码:

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    #include<cstdlib>
    using namespace std;
    double f[110000];
    struct node
    {
        int x,y,next;double d;
    }a[210000];int len,last[110000];
    void ins(int x,int y,double d)
    {
        len++;
        a[len].x=x;a[len].y=y;a[len].d=d;
        a[len].next=last[x];last[x]=len;
    }
    int chu[210000];
    bool v[110000];
    int n;
    void dfs(int x)
    {
        if(x==n) return ;
        if(v[x]==false) v[x]=true;
        else return ;
        for(int k=last[x];k;k=a[k].next)
        {
            int y=a[k].y;
            dfs(y);
            f[x]+=f[y]+a[k].d;
        }
        f[x]/=chu[x];
    }
    int main()
    {
        int m;
        scanf("%d%d",&n,&m);
        len=0;memset(last,0,sizeof(last));
        for(int i=1;i<=m;i++)
        {
            int x,y;double d;
            scanf("%d%d%lf",&x,&y,&d);
            ins(x,y,d);chu[x]++;
        }
        memset(v,false,sizeof(v));
        dfs(1);
        printf("%.2lf
    ",f[1]);
        return 0;
    }

     

  • 相关阅读:
    Spring_IOC理论推导
    第一个Mybatis及运行问题分析
    Spring_简介
    ECharts_雷达图
    ECharts_饼图
    ECharts_直角坐标系的常用配置
    ECharts_散点图
    ECharts_折线图
    util之日期工具类
    util之Json工具类
  • 原文地址:https://www.cnblogs.com/Never-mind/p/8636372.html
Copyright © 2020-2023  润新知