LA 4731 Cellular Network
2013-08-26 14:01
134 查看
概率DP
题意: 存在一个蜂窝网络,有n个部分,有一部手机存在着n个部分中的某一个,给定每个部分的存在概率,现在要将这n个部分分成w块,每一块内的部分同时访问。让你完成划分并输出找到手机的最小访问块数期望。
解法: 显然可以知道先访问大概率的部分,能使期望最小。所以先将n部分按概率从大到小排序,每次划分块时选择连续的一段。
虽然顶着概率DP题的外表,但是实际上求期望的公式题目是给出了(虽然题目略长),设dp[i][j]为前i部分划分成j块的最小期望,有如下转移:
dp[i][j] = min(dp[i][j], dp[k][j-1] + 第k+1块到第i块有手机的概率*i块)。偷个懒写了记忆化搜索。
题意: 存在一个蜂窝网络,有n个部分,有一部手机存在着n个部分中的某一个,给定每个部分的存在概率,现在要将这n个部分分成w块,每一块内的部分同时访问。让你完成划分并输出找到手机的最小访问块数期望。
解法: 显然可以知道先访问大概率的部分,能使期望最小。所以先将n部分按概率从大到小排序,每次划分块时选择连续的一段。
虽然顶着概率DP题的外表,但是实际上求期望的公式题目是给出了(虽然题目略长),设dp[i][j]为前i部分划分成j块的最小期望,有如下转移:
dp[i][j] = min(dp[i][j], dp[k][j-1] + 第k+1块到第i块有手机的概率*i块)。偷个懒写了记忆化搜索。
/* ********************************************** Author : Nero Created Time: 2013-8-26 12:58:39 Problem id : LA 4731 Problem Name: Cellular Network *********************************************** */ #include <stdio.h> #include <string.h> #include <algorithm> using namespace std; #define REP(i,a,b) for(int i=(a); i<(int)(b); i++) #define clr(a,b) memset(a,b,sizeof(a)) const double eps = 1e-8; const double Inf = 1e15; double x[110]; double s[110]; double dp[110][110]; double dfs(int n, int w) { if(w < 0) return Inf; if(dp [w] > -eps) return dp [w]; dp [w] = Inf; for(int i = 0; i < n; i ++) { dp [w] = min(dp [w], dfs(i,w-1) + (s -s[i])*n); } return dp [w]; } int main() { int cas; double sum; int n,w; scanf("%d", &cas); while(cas--) { sum = 0.0; scanf("%d%d", &n, &w); REP(i,1,n+1) scanf("%lf", &x[i]), sum += x[i]; sort(x+1,x+n+1); reverse(x+1,x+n+1); for(int i = 1; i <= n; i ++) x[i] /= sum, s[i] = s[i-1] +x[i]; REP(i,0,110) REP(j,0,110) dp[i][j] = -1.0; dp[0][0] = 0.0; printf("%.4lf\n", dfs(n,w)); } return 0; }
相关文章推荐
- LA 4731 DP+贪心
- LA 4731 蜂窝网络(简单dp+贪心)
- LA 4731
- la 4731 贪心+DP+概率
- LA 4731 Cellular Network -
- LA 4731 蜂窝网络
- 信息安全--三:BLP模型(Bell-La Padula模型)
- Linux中的.so .a .la文件的含义
- C'est la vie
- 关于libtool: link: warning: libmemcached.la seems to be moved
- 高效开发乘胜追击-Zoomla!逐浪CMS1.2版发布
- Pourquoi sont blessés avant la sécheresse agriculteurs
- Alizee-La_isla_bonita
- 现实世界的Windows Azure:采访伟创力公司运营IT总监Husam Laswi
- 流形学习之Laplacian Eigenmaps
- linux下的so、o、lo、a、la文件
- 与您分享zoomla!逐浪CMS的做网站优化的八个常见问题
- Laplacian of Gaussian (LoG)
- dp 专题系列(二):LA3983 Robotruck,LA4794 Sharing Chocolate,LA4394 String Painter,LA4327 Parade,Uva 10817
- LA 3602 DNA Consensus String