首页 > 其他分享 >期望dp

期望dp

时间:2022-08-16 18:14:12浏览次数:64  
标签:return idx int ne 期望 dp

期望的线性性质:E(ax+by)=aE(X)+bE(Y)

1-n总长度的期望

到达某个结果的期望值 = 这个结果 * 从起始状态到这个状态的概率
f[i]=∑1/k*(w[i]+f(S[i])
f[i]表示从i走到n的期望 边界f(N)=0即n到n的期望是0 答案为f[1]
没有权值 : p(x)=p1x1+p2x2+....+pnxn
有权值: p(y)=(p1(x1+w)+p2(x2+w)+…+pn(xn+w))/n
从x走到y: E(y)=E(x)+∑pi∗wi

#include <iostream>
#include <cstring>

using namespace std;

const int N = 100010 , M = 2 * N;

double f[N];
int e[M] , ne[M] , w[M] , h[N] , idx;
int n ,m;
int d[N];

void add(int a , int b , int c)
{
    e[idx] = b , ne[idx] = h[a] ; w[idx] = c , h[a] = idx++;
}

double dp(int u)//记忆化搜索
{
    if(f[u] >= 0) return f[u];//如果见过
    f[u] = 0;
    for(int i = h[u] ; ~i ; i = ne[i])
    {
        int j = e[i];
        f[u] += (w[i] + dp(j)) / d[u];//d表示出边多少  dp(j)这里使用了倒推
    }
    return f[u];
}


int main()
{
    cin >> n >> m;
    memset(h , -1 , sizeof h);

    while(m--)
    {
        int a , b , c;
        cin >> a >> b >> c;
        add(a , b , c);
        d[a]++;//出度++
    }

    memset(f , -1 , sizeof f);//初始化成一个不存在的数

    printf("%.2lf\n" , dp(1));//从1开始
    return 0;
}

标签:return,idx,int,ne,期望,dp
From: https://www.cnblogs.com/liang302/p/16592447.html

相关文章

  • Codeforces1699E Three Days Grace【数学】【DP】
    分析:一开始觉得是二分答案,发现行不通之后改为枚举最小值。现在我将这若干个数分解,假设分解完之后得到的最小值为$i$,那么我就是要在最小值为$i$的基础上尽量最小化分解的......
  • 8、ThreadPoolTaskExecutor线程并发
    一、线程池的优点:1、降低资源消耗。通过重复利用自己创建的线程降低线程创建和销毁造成的消耗。2、提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行......
  • cf C. Vertex Deletion 树形DP 删除某写节点 且保证其它节点都有至少一个相连节点的总
     https://codeforces.com/gym/103145/problem/C timelimitpertest1.5secondsmemorylimitpertest256megabytesinputstandardinputoutputstandard......
  • 重修 斜率优化 Dp
    斜率单调暴力移指针斜率不单调二分找答案\(x\)坐标单调开单调队列\(x\)坐标不单调开平衡树/cdq分治P4072[SDOI2016]征途我们要求方差最小,而总和不变,等价于要每......
  • 洛谷P2622 关灯问题II引发的关于DP实现形式及后效性的思考
      动态规划要求已经求解的子问题不受后续阶段的影响,即无后效性。而在这种递推的实现方式中,后面枚举的状态可能更新前面已经枚举过的状态。也就是说,这种递推的实现方式是......
  • ubuntu dpkg问题解决
    问题今天玩ubuntu发现以下报错:dpkgwasinterrupted,youmustmanuallyrunsudodpkg–configure-atocorrecttheproblem 解决sudorm/var/lib/apt/lists/l......
  • TCP和UDP的应用场景
    传输层的两个协议,TCP(TransmissionControlProtocol,传输控制协议)和UDP(UserDatagramProtocol,用户数据报协议),有各自的应用场景。TCP应用场景TCP为应用层协议提供可靠传输......
  • TCP/UDP学习笔记
    TCP/UDP学习笔记相同点:1.都工作在传输层2.都在程序之间传输数据(二进制文件),可以是文件、视频、图片等不同点:TCP:面向连接(握手挥手)、完整可靠(丢包重发)、顺序(序列传输)......
  • 数位DP-902. 最大为 N 的数字组合
    问题描述给定一个按 非递减顺序 排列的数字数组 digits 。你可以用任意次数 digits[i] 来写的数字。例如,如果 digits=['1','3','5'],我们可以写数字,如 '13', '5......
  • P5131 荷取融合——计数dp,组合计数
    本题是一个计数类的问题,其中需要有一些优化。简单思路从题面和数据范围,可以猜测算法时间复杂度大概是\(O(nk)\),所以不难想到用动态规划:设\(f(i,j)\)为前\(i\)个数中选\(......