HDU5236(概率DP,贪心)
2015-10-13 17:49
411 查看
题意是敲n个字符,每次敲有p概率崩溃返回上一次的保存状态,保存需要按下x个建。求最小的按键次数的期望。
求出敲n个字母的期望后枚举分成i段,要使得尽量均匀。
求出敲n个字母的期望后枚举分成i段,要使得尽量均匀。
#include <bits/stdc++.h> using namespace std; #define maxn 111111 #define INF 1e20 double dp[maxn], f[maxn]; double p; int x, n; double ans; int main () { int t, kase = 0; cin >> t; while (t--) { cin >> n >> p >> x; f[0] = 0; memset (dp, 0, sizeof dp); for (int i = 1; i <= n; i++) { f[i] = (f[i-1]+1.0)/(1.0-p); } ans = INF; for (long long i = 1; i <= n; i++) { long long j = n/i, k = n-j*i; dp[i] = x*i + f[j+1]*k + f[j]*(i-k); ans = min (ans, dp[i]); } printf ("Case #%d: %.6lf\n", ++kase, ans); } return 0; } /* 10 10 0.5 0 */
相关文章推荐
- 运用转义字符灵活拼接html
- 进入 App Store 打分
- Java JUC之Atomic系列12大类实例讲解和原理分解
- TCL: trace
- poj 2774
- memcached 使用注意点
- jqzoom源码解读-1
- 新的触摸体验——iOS9的3D Touch
- (八)Spark源码理解之DAGScheduler---part1
- Android,两个互相影响的EditText如何避免死循环
- POJ 1236 Network of Schools(强连通分量)
- getopt、getopt_long、getopt_long_only
- 第四周--多项式求和
- Codeforces Round #325 (Div. 2) B. Laurenty and Shop(暴力)
- TCL: regexp pattern
- Codeforces Round #325 (Div. 2) D. Phillip and Trains
- 自定义组件
- AndroidLifeCycle
- Maven
- tomcat一般配置