----概率dp
欣君
追寻那如樱花般的绚烂
展开
-
51nod 1670 打怪兽
设dp[i]表示能打败第i-1个怪兽的概率。 dp[i+1]=dp[i]*(sum[i]-i)/(n-i) sum[i] 代表能量值不高于i的怪兽数量。 递推出所有的 dp[i] 后,对每种情况进行求解。 若最多能打败x个怪兽, 其概率为 dp[x]-dp[x+1] 。 #include using namespace std; const long long mod=1e9+7;原创 2016-11-07 00:39:11 · 328 阅读 · 0 评论 -
51nod 1705 七星剑
期望DP转移,正着来。 #include using namespace std; const int MAXN=110; const double eps=1e-8; const double INF=1e100; double prob[10][MAXN],suc[10],c[MAXN],dp[10][MAXN]; int lose[10][MAXN]; int main() { in原创 2017-07-11 10:08:41 · 335 阅读 · 0 评论 -
51nod 1836 战忽局的手段
设 f(m) 表示m次演讲后忽悠的期望,那么很容易得出: f(m)=f(m-1)+1*(n-f(m))/n 整理得到 f(m)-n=(n-1)/n*(f(m-1)-n) 公式有了,然后就是卡精度问题。。。。 __float128 有这么一个神奇的东西。。。。 #include using namespace std; __float128 powf(__float128 x,long原创 2016-12-06 16:16:04 · 500 阅读 · 7 评论