首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
BZOJ 1778 [Usaco2010 Hol]Dotp 驱逐猪猡 ——期望DP
】的更多相关文章
BZOJ 1778 [Usaco2010 Hol]Dotp 驱逐猪猡 ——期望DP
思路和BZOJ 博物馆很像. 同样是高斯消元 #include <map> #include <ctime> #include <cmath> #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define F(i,j,k) fo…
bzoj 1778: [Usaco2010 Hol]Dotp 驱逐猪猡【dp+高斯消元】
算是比较经典的高斯消元应用了 设f[i]为i点答案,那么dp转移为f[u]=Σf[v]*(1-p/q)/d[v],意思是在u点爆炸可以从与u相连的v点转移过来 然后因为所有f都是未知数,高斯消元即可(记得输出大难的时候除以总概率和) #include<iostream> #include<cstdio> using namespace std; const int N=305; int n,m,d[N],h[N],cnt; double a[N][N],f[N],p,q,ans;…
BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡
1778: [Usaco2010 Hol]Dotp 驱逐猪猡 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 563 Solved: 216[Submit][Status][Discuss] Description 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= 300)一共N个猪城.这些城市由M (1 <= M <= 44,850)条由两个不同端点A_j和B_j (1 <= A_j<…
BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡 [高斯消元 概率DP]
1778: [Usaco2010 Hol]Dotp 驱逐猪猡 题意:一个炸弹从1出发p/q的概率爆炸,否则等概率走向相邻的点.求在每个点爆炸的概率 高斯消元求不爆炸到达每个点的概率,然后在一个点爆炸就是\(\frac{f[i]}{sum}\) #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> using na…
【BZOJ1778】[Usaco2010 Hol]Dotp 驱逐猪猡 期望DP+高斯消元
[BZOJ1778][Usaco2010 Hol]Dotp 驱逐猪猡 Description 奶牛们建立了一个随机化的臭气炸弹来驱逐猪猡.猪猡的文明包含1到N (2 <= N <= 300)一共N个猪城.这些城市由M (1 <= M <= 44,850)条由两个不同端点A_j和B_j (1 <= A_j<= N; 1 <= B_j <= N)表示的双向道路连接.保证城市1至少连接一个其它的城市.一开始臭气弹会被放在城市1.每个小时(包括第一个小时),它有P/…
BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡 概率与期望+高斯消元
这个还挺友好的,自己相对轻松能想出来~令 $f[i]$ 表示起点到点 $i$ 的期望次数,则 $ans[i]=f[i]\times \frac{p}{q}$ #include <cmath> #include <cstdio> #include <algorithm> #define N 305 #define setIO(s) freopen(s".in","r",stdin) , freopen(s".out&quo…
BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡(高斯消元+期望dp)
传送门 解题思路 设\(f(x)\)表示到\(x\)这个点的期望次数,那么转移方程为\(f(x)=\sum\frac{f(u)*(1 - \frac{p}{q})}{deg(u)}\),其中\(u\)为与\(x\)相连的点,\(deg(u)\)为\(u\)的度数.转移方程很好理解的,而每个点的爆炸概论就等于\(f(x)*\frac{p}{q}\).之后做一遍高斯消元就行了. 代码 #include<iostream> #include<cstdio> #include<cst…
bzoj 1778 [Usaco2010 Hol]Dotp 驱逐猪猡(高斯消元)
[题意] 炸弹从1开始运动,每次有P/Q的概率爆炸,否则等概率沿边移动,问在每个城市爆炸的概率. [思路] 设M表示移动一次后i->j的概率.Mk为移动k次后的概率,则有: Mk=M^k 设S={ 1,0,0,0,… } 设pi为移动i步后到对应点爆炸的概率矩阵,则有: p0=P/Q * S p1=P/Q * S * M1 … p+oo=P/Q * S * Mn 则答案为:sigma{ pi },0<=i<+oo 即: Ans=P/Q * S * sigma{ M^i } ,0<=…
BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡 (高斯消元)
题面 题目传送门 分析 令爆炸概率为PPP.设 f(i)=∑k=0∞pk(i)\large f(i)=\sum_{k=0}^{\infty}p_k(i)f(i)=∑k=0∞pk(i),pk(i)p_k(i)pk(i)表示经过kkk步走到iii的概率,那么在iii点结束的概率就为f(i)∗Pf(i)*Pf(i)∗P. 看看f(i)f(i)f(i)满足什么转移方程式.如下 f(i)=∑i−j(f(j)∗(1−P)/dj)\large f(i)=\sum_{i-j}(f(j)*(1-P)/d_j…
【BZOJ】1778: [Usaco2010 Hol]Dotp 驱逐猪猡
[题意]给定无向图,炸弹开始在1,在每个点爆炸概率Q=p/q,不爆炸则等概率往邻点走,求在每个点爆炸的概率.n<=300. [算法]概率+高斯消元 [题解]很直接的会考虑假设每个点爆炸的概率,无法转移.每个点不爆炸的概率,也无法转移. 因为爆炸概率相同,那么每个点爆炸的概率应该和到达该点的概率正相关.(另一种思路是和到达次数正相关) 设f[x]表示炸弹到达点x的概率(之前不爆炸). 考虑枚举点x的下一步,发现无法用点y的概率来转移(因为f[y]可能由别的路走到). 考虑枚举点x的上一步,根据全概…