BZOJ3295:[Zjoi2015]地震后的幻想乡(状压dp)
2018-03-02 09:22
351 查看
题面
我理解的题意:n个点,m条边的图。将m条边随机排序,对于每种序列,
找到一个最小的k使得编号为1~k的边能时图联通,问k的期望除以m+1。
根据大佬的理解,期望就是个积分。故可用算积分的方法算期望
设p[x]p[x]为选了x条边还不联通的概率
则k的期望为p的反常积分(大概就这个意思,乱吹的,应该是假的)
而求概率就是求方案数,设cnt[S]cnt[S]为点集S的边数
f[S][i]f[S][i]为点集S,选i条边不连通的方案数
g[S][i]g[S][i]为点集S,选i条边连通的方案数
有f[S][i]+g[S][i]=Cicnt[S]f[S][i]+g[S][i]=Ccnt[S]i
对于点集S,通过枚举包含某个点的子集来转移
f[S][i]=∑T⊂S∑j=0
ccbd
ig[T][j]∗Ci−jcnt[S−T]f[S][i]=∑T⊂S∑j=0ig[T][j]∗Ccnt[S−T]i−j
我理解的题意:n个点,m条边的图。将m条边随机排序,对于每种序列,
找到一个最小的k使得编号为1~k的边能时图联通,问k的期望除以m+1。
根据大佬的理解,期望就是个积分。故可用算积分的方法算期望
设p[x]p[x]为选了x条边还不联通的概率
则k的期望为p的反常积分(大概就这个意思,乱吹的,应该是假的)
而求概率就是求方案数,设cnt[S]cnt[S]为点集S的边数
f[S][i]f[S][i]为点集S,选i条边不连通的方案数
g[S][i]g[S][i]为点集S,选i条边连通的方案数
有f[S][i]+g[S][i]=Cicnt[S]f[S][i]+g[S][i]=Ccnt[S]i
对于点集S,通过枚举包含某个点的子集来转移
f[S][i]=∑T⊂S∑j=0
ccbd
ig[T][j]∗Ci−jcnt[S−T]f[S][i]=∑T⊂S∑j=0ig[T][j]∗Ccnt[S−T]i−j
#include <iostream> #include <fstream> #include <algorithm> #include <cmath> #include <ctime> #include <cstdio> #include <cstdlib> #include <cstring> using namespace std; #define mmst(a, b) memset(a, b, sizeof(a)) #define mmcp(a, b) memcpy(a, b, sizeof(b)) typedef long long LL; const int N=1200; int n,m,er ,siz ; int cnt ; LL C ,f [101],g [101]; int a ,b ; double ans; int main() { cin>>n>>m; for(int i=1;i<=m;i++) cin>>a[i]>>b[i]; er[0]=1; for(int i=1;i<=n;i++) er[i]=er[i-1]*2; for(int i=0;i<=m;i++) { C[i][0]=C[i][i]=1; for(int j=1;j<i;j++) C[i][j]=C[i-1][j]+C[i-1][j-1]; } int nn=(1<<n)-1; for(int i=1;i<=nn;i++) siz[i]=siz[i-(i&-i)]+1; for(int i=1;i<=nn;i++) for(int j=1;j<=m;j++) if((er[a[j]-1]&i)&&(er[b[j]-1]&i)) cnt[i]++; for(int s=1;s<=nn;s++) if(siz[s]!=1) { int p=s&-s; for(int t=s&(s-1);t;t=(t-1)&s) if(t&p) for(int i=0;i<=cnt[t];i++) for(int j=0;j<=cnt[s^t];j++) f[s][i+j]+=g[t][i]*C[cnt[s^t]][j]; for(int i=0;i<=cnt[s];i++) g[s][i]=C[cnt[s]][i]-f[s][i]; } else g[s][0]=1; for(int i=0;i<=m;i++) ans+=(double)f[nn][i]/C[m][i]; ans/=m+1; printf("%.6f\n", ans); return 0; }
相关文章推荐
- 【BZOJ 3925】[Zjoi2015]地震后的幻想乡 期望概率dp+状态压缩+图论知识+组合数学
- [BZOJ3925][[Zjoi2015]地震后的幻想乡][期望+状压DP]
- [期望 状压DP 子集DP 多项式] BZOJ 3925 [Zjoi2015]地震后的幻想乡
- 【BZOJ 3925】【ZJOI 2015】[概率dp]地震后的幻想乡
- BZOJ 3925 [Zjoi2015]地震后的幻想乡 ——期望DP
- bzoj3925 [Zjoi2015]地震后的幻想乡
- BZOJ 3925 ZJOI2015 地震后的幻想乡
- bzoj 3925: [Zjoi2015]地震后的幻想乡
- bzoj 3925: [Zjoi2015]地震后的幻想乡
- BZOJ 3925 [Zjoi2015]地震后的幻想乡
- BZOJ 3925 Zjoi2015 地震后的幻想乡 期望状压DP
- BZOJ 3925 [Zjoi2015]地震后的幻想乡
- BZOJ 3925: [Zjoi2015]地震后的幻想乡(概率)
- BZOJ 3925: [Zjoi2015]地震后的幻想乡
- 【BZOJ3925】地震后的幻想乡(期望概率DP,状压DP)
- [BZOJ3925][ZJOI2015]地震后的幻想乡-概率与期望-动态规划
- bzoj 3925: [Zjoi2015]地震后的幻想乡
- Bzoj3925--Zjoi2015地震后的幻想乡
- [BZOJ3924][ZJOI2015]幻想乡战略游戏(动态点分治)
- 【后缀自动机】 BZOJ 3926 ZJOI2015 诸神眷顾的幻想乡