首先嘛,看了这么久概率论真的不错啊。看到就知道怎么写(其实也挺容易的= =) 直接数位dp就行了 CODE: #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> using namespace std; int g[20],a[20],q[20]; double f[120][66000]; int main(){ int n,m; scanf("%d%…
求点1到点n经过的路径权值异或和的期望. 考虑按位计算,对于每一位来说,令dp[i]表示从i到n的异或和期望值. 那么dp[i]=sum(dp[j]+1-dp[k]).如果w(i,j)这一位为0,如果w(i,k)这一位为1.边界为dp[n][n]=0. 那么求解每个方程组就得到了每一位的贡献.另外注意自环的出理就ok了. # include <cstdio> # include <cstring> # include <cstdlib> # include <io…