hdu 5045 N个人做M道题的正确率
来源:互联网 发布:淘宝联盟怎么查看pid 编辑:程序博客网 时间:2024/05/04 17:15
http://acm.hdu.edu.cn/showproblem.php?pid=5045
给出N个人做M道题的正确率,每道题只能由一个人做出,并且当所有人都做出来且仅做出一道题时,做过题的人才可以继续做题,求最大期望。
n最大值是10,想到用状压
状压dp
#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring>#include <string>#include <queue>#include <vector>#include<set>#include <iostream>#include <algorithm>using namespace std;#define RD(x) scanf("%d",&x)#define RD2(x,y) scanf("%d%d",&x,&y)#define clr0(x) memset(x,0,sizeof(x))typedef long long LL;double dp[1005][1<<10];int n,m;double p[12][1005];int main(){ int T; scanf("%d",&T); int iCase = 0; while(T--){ iCase++; RD2(n,m); for(int i = 0;i < n;i++){ for(int j = 0;j < m;++j){ scanf("%lf",&p[i][j]); } } double ans = 0; int sum = 1<<n; for(int i = 0;i <= m;++i) for(int j = 0;j < sum;++j) dp[i][j] = -1; dp[0][0] = 0; for(int i = 0;i < m;++i) for(int j = 0;j < sum;++j){ if(0 > dp[i][j]) continue; for(int k = 0;k < n;++k){ if( ((1<<k) & j) == 0){ int st = (1<<k) | j; if(st + 1 == sum) st = 0; dp[i+1][st] = max(dp[i+1][st],dp[i][j] + p[k][i]); } } } for(int i = 0;i < sum;++i){ ans = max(ans,dp[m][i]); } printf("Case #%d: %.5lf\n",iCase,ans); } return 0;}
0 0
- hdu 5045 N个人做M道题的正确率
- 从N个人中每数m个人就退出该人的一类笔试题
- hdu 5108 最小的M使N/M为素
- (hdu step 3.1.7)Children’s Queue(求n个人站在一起有m个人必须是连在一起的方案数)
- hdu 2583 f(n) 做的迷迷糊糊的一道题
- m个人围成一圈,每隔n个人出列,求出列的顺序
- 题目一:n个人叫m次.第m个人淘汰,重新开始,一直到最后一个人的问题(java)
- 【hdu 5894】【组合数学 lucas 费马小求逆元】 【m个人坐n个围成一周的位置每个人距离至少为k,求方法数】
- HDU 5601:N*M bulbs
- hdu 5601 N*M bulbs
- HDU 5601 N*M bulbs
- HDU 5601 N*M bulbs
- 有n个人围成一圈,顺序排号的做题顺序
- YT14-HDU-求1/n的第m位数
- hdu 1028 对某个数n的m划分数
- n个人中每m个出队一次
- 求m和n的算法题
- M*N的矩阵
- 一道笔试题目
- 深入理解read(byte[] b)与readFully(byte[] b)
- 冒泡排序的方式实现一组数据偶数放在左边奇数放在右边
- 优化Android App性能?十大技巧必知!
- cocos2d-x3.2中添加Android手机震动
- hdu 5045 N个人做M道题的正确率
- sql语句 MySQL
- PHP与EXCEL PHPExcel
- 设置全局导航栏的title颜色和字体
- Cocos2d-x 3.0 触摸机制
- Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
- 获得设备管理器列表包名
- IOS8无法启用定位的服务:CLLocationManager
- 手把手让你爱上Android sdk自带“9妹”(9patch 工具),让Android游戏开发更方便!