LINK:随机漫游

非常妙的一道题。

容易想到倒推期望。

设状态 f[i][j]表示到达第i个点 此时已经到达的集合为j能走到全集的期望边数。

只要求出来这个就能O(1)回答询问。

\(f[i][j]=1+\sum_{v\in son_x,v\notin j}\frac{1}{d_i}f[i][j|v]+\sum_{v\in son_x,v\in j}\frac{1}{d_i}f[i][j]\)

有了这个东西 显然可以\((2^n\cdot n)^3\)暴力高斯消元了。

考虑优化 容易发现如果按照二进制的大小倒着推这个东西 那么前面那个部分完全已知了。

这样我们每次的方程最多n个 总复杂度\(2^n\cdot n^3\)

需要卡卡常数 如 消的时候d==0可以直接break了。

const ll MAXN=19;
ll f[MAXN][1<<MAXN];//f[i][j]表示到达i这个点此时集合为j还需要跑多少才能得到全集的期望边数.
ll n,m,Q;
ll a[MAXN][MAXN],d[MAXN];
ll b[MAXN][MAXN],g[MAXN];
inline ll ksm(ll b,ll p){ll cnt=1;while(p){if(p&1)cnt=(ll)cnt*b%mod;b=(ll)b*b%mod;p=p>>1;}return cnt;}
inline void GAUSS()
{
rep(1,n,i)
{
ll p=i;
rep(i,n,j)if(b[j][i]){p=j;break;}
if(p!=i){rep(1,n,j)swap(b[i][j],b[p][j]);swap(g[i],g[p]);}
ll ww=ksm(b[i][i],mod-2);
rep(1,n,j)
{
if(i==j)continue;
ll d=ww*b[j][i]%mod;
if(!d)continue;
rep(1,n,k)b[j][k]=(b[j][k]-b[i][k]*d)%mod;
g[j]=(g[j]-g[i]*d)%mod;
}
}
rep(1,n,i)g[i]=g[i]*ksm(b[i][i],mod-2)%mod;
}
signed main()
{
freopen("1.in","r",stdin);
get(n);get(m);
rep(1,m,i)
{
ll get(x),get(y);
a[x][y]=a[y][x]=1;
++d[x];++d[y];
}
rep(1,n,i)d[i]=ksm(d[i],mod-2);
ll maxx=(1<<n)-1;
fep(maxx-1,1,j)
{
//求出每个f[i][j].
rep(1,n,i)
{
b[i][i]=1;g[i]=0;
if(j&(1<<(i-1)))
{
++g[i];
rep(1,n,k)
{
if(a[i][k])
{
if(!(j&(1<<(k-1))))g[i]=(g[i]+d[i]*f[k][j|(1<<(k-1))])%mod;
else b[i][k]=(b[i][k]-d[i])%mod;
}
}
}
}
GAUSS();
rep(1,n,i)f[i][j]=(g[i]+mod)%mod;
}
get(Q);
rep(1,Q,i)
{
ll st,s=0,get(x);
rep(1,x,i)
{
ll get(y);
s=s|(1<<(y-1));
}
get(st);
putl(f[st][(maxx^s)|(1<<(st-1))]);
}
return 0;
}

luogu P4321 随机漫游 期望dp 二进制 高斯消元的更多相关文章

  1. HDU 4418 Time travel 期望dp+dfs+高斯消元

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4418 Time travel Time Limit: 2000/1000 MS (Java/Othe ...

  2. BZOJ 3143 Luogu P3232 [HNOI2013]游走 (DP、高斯消元)

    题目链接: (bzoj) https://www.lydsy.com/JudgeOnline/problem.php?id=3143 (luogu) https://www.luogu.org/pro ...

  3. Luogu P4321 随机漫游

    期望DP要倒着推 Luogu P4321 题意 LOJ #2542 不一定是树,询问点不一定均为1 $Solution$ 设计一个巧妙的DP状态 设$ F(S,x)$表示当前在点$ x$已经走遍了$ ...

  4. BZOJ2707 [SDOI2012]走迷宫 【概率dp + tarjan + 高斯消元】

    题目 Morenan被困在了一个迷宫里.迷宫可以视为N个点M条边的有向图,其中Morenan处于起点S,迷宫的终点设为T.可惜的是,Morenan非常的脑小,他只会从一个点出发随机沿着一条从该点出发的 ...

  5. 【JLOI 2012】时间流逝(期望,树上高斯消元)

    题目链接 这是一道传统的期望题,可是有一些套路值得我去掌握. 我们用$s$来表示一种状态,就是当前拥有的能量圈,是一个正整数拆分的形式. 用$f_{s}$表示如果遇到果冻鱼后丢掉了最小的能量圈后的状态 ...

  6. 【BZOJ 2337】 2337: [HNOI2011]XOR和路径(概率DP、高斯消元)

    2337: [HNOI2011]XOR和路径 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1170  Solved: 683 Description ...

  7. hdu4418(概率dp + 高斯消元)

    应该是一个入门级别的题目. 但是有几个坑点. 1. 只选择x能到达的点作为guass中的未知数. 2. m可能大于n,所以在构建方程组时未知数的系数不能直接等于,要+= 3.题意貌似说的有问题,D为- ...

  8. 【Luogu】P4035球形空间产生器(高斯消元)

    题目链接 水比题,把圆方程展开减一下把平方都减掉半径的平方也减掉,高斯消元即可. 然后我只输出两位小数,爆了两次零.我好菜啊. #include<cstdio> #include<c ...

  9. 【Luogu】P2447外星千足虫(高斯消元)

    题目链接 高斯消元解%2意义下的方程,Bitset优化一下. 在消的过程中就能顺便把有解的第一问求出来,记录一下访问过的最大行. #include<cstdio> #include< ...

随机推荐

  1. HTML5(五)Geolocation

    HTML5 Geolocation 定位用户的位置 HTML5 Geolocation API 用于获得用户的地理位置. 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的. 注意 ...

  2. PCA算法 | 数据集特征数量太多怎么办?用这个算法对它降维打击!

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第27文章,我们一起来聊聊数据处理领域的降维(dimensionality reduction)算法. 我们都知道,图片 ...

  3. 线下---复习day03

    目录 django回顾 1 web应用,http协议,web框架 2 django请求生命周期 3 路由控制 4 视图层 5 模板层 6 模型层 django回顾 1 web应用,http协议,web ...

  4. java 怎样 改变 数组元素的值

    简介 (Introduction): 背景 需要解析Object数组中的数据,将数据(mintime)进行修改,改为(maxtime),修改后,生成新的对象 结构图 核心 对于Object数组的概念理 ...

  5. 【asp.net core 系列】15 自定义Identity

    0. 前言 在之前的文章中简单介绍了一下asp.net core中的Identity,这篇文章将继续针对Identity进行进一步的展开. 1. 给Identity添加额外的信息 在<[asp. ...

  6. day06总结

    字符串常用操作# ======================================基本使用======================================# 1.用途:记录描述 ...

  7. day39 作业

    实现生产消费原理 from multiprocessing import Process,JoinableQueue import time import random def cooker(q): ...

  8. 基于web的图书管理系统设计与实现

    原文链接:基于web的图书管理系统设计与实现 系统演示链接:点击这里查看演示 01 系统简述     图书管理系统就是利用计算机,结合互联网对图书进行结构化.自动化管理的一种软件,来提高对图书的管理效 ...

  9. linux专题(四):常用的基本命令(二)基本属性

    看懂文件属性 Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限.为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定. 在Li ...

  10. 隐藏Layer中的Iframe内部元素

    隐藏Layer中的Iframe内部元素 1.Layer:一个web弹出层/窗解决方案 2.隐藏Layer弹出层中Iframe内部的元素,例子如下: 这个就是在Layer弹出层内的内容,加载完毕之后,获 ...