多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > HDU5045-Contest(DP+狀態壓縮)

HDU5045-Contest(DP+狀態壓縮)

來源:程序員人生   發布時間:2014-10-17 05:29:17 閱讀次數:1919次

題目鏈接


題意:有n個人做m道題目,每個人對于每題都有答對的概率,求最后答出所有題目概率的最大值。有要求就是每兩個人之間答題的數目不能超過1。

思路:DP+狀態壓縮。dp[i][j]表示前i道題目j個人答題狀態的最大值,j用二進制表示,因為人最多就10個。因為每兩個人之間答題數目不能超過1,所以當狀態達到1 << n - 1,即所有人都答過一題時,將重置為0。

代碼:

#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int MAXN = 1200; double p[15][MAXN]; double d[MAXN][MAXN]; int n, m; void dp() { for (int i = 0; i <= m; i++) for (int j = 0; j < (1 << n); j++) d[i][j] = -1.0; d[0][0] = 0; for (int i = 0; i < m; i++) for (int j = 0; j < (1 << n); j++) { if (d[i][j] < 0) continue; int st; for (int k = 0; k < n; k++) { if (!((1 << k) & j)) { st = j | (1 << k); if (st == (1 << n) - 1) st = 0; d[i + 1][st] = max(d[i + 1][st], d[i][j] + p[k][i]); } } } } int main() { int cas, t = 1; scanf("%d", &cas); while (cas--) { scanf("%d%d", &n, &m); for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) scanf("%lf", &p[i][j]); dp(); double ans = 0; for (int i = 0; i < (1 << n); i++) ans = max(ans, d[m][i]); printf("Case #%d: %.5lf ", t++, ans); } return 0; }


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 在线看的黄色网址 | 欧美激情在线精品一区二区 | 国产免费69成人精品视频 | 欧美精品亚洲精品日韩专区 | 最近中文字幕完整国语视频 | 亚洲网站视频在线观看 | 免费看成人毛片日本久久 | 激情爽毛片私人影院 | 片免费观看网站视频 | 欧美jizzjizz在线播放 | 国产精品亚洲精品久久成人 | 中文字幕www | 欧美亚洲另类在线 | 伊人久久综合网站 | 成人久久网 | 亚洲国产精品线播放 | 日产一一到六区网站免费 | 91伊人国产 | 欧美一区二区三区久久久 | 琪琪理论影院2018中文版 | 亚洲日韩精品欧美一区二区一 | 国产免费一级高清淫日本片 | aa级毛片| 亚洲欧美视频一级 | 日本在线视频一区二区三区 | 国产亚洲精品福利在线 | 日本视频中文字幕 | 亚洲国产高清一区二区三区 | 国产精品亚洲欧美一级久久精品 | 精品免费久久久久久久 | 日本一级免费 | 青青青青在线成人视99 | 欧美日本一道高清免费3区 欧美日本一道免费一区三区 | 在线三级网| 在线观看日本www | 最近中文字幕无免费 | 日韩欧美成人乱码一在线 | 欧美视频亚洲视频 | 国产91成人精品亚洲精品 | 欧美18videosex性欧美乱任 | 校园春色网站 |