ZOJ 3502 Contest <状态压缩 概率 DP>
2013-08-12 14:45
169 查看
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3502
View Code
#include <iostream> #include <cstdio> #include <string> #include <cmath> #include <cstring> using namespace std; int T, N; double p[15][15], dp[1<<15]; string s[1<<15]; const double eps=1e-8; int Sign( double x ) { if( fabs(x)<eps )return 0; return x>0?1:-1; } int main( ) { scanf("%d", &T); while(T--){ scanf("%d",&N ); for(int i=0; i<N; ++ i){ for( int j=0; j<N; ++j ){ scanf("%lf", &p[i][j]); } } int t=1<<N;double q; memset(dp, 0, sizeof dp); if(N==1)s[1]="A"; // N=1 p=0 不能被更新到~ for(int i=1; i<t; ++ i){ for( int j=0; j<N; ++ j ){// 更新到当前位 if( i&(1<<j)) { q=0; for( int k=0; k<N; ++ k ){ // 已经被更新过的 if(i&(1<<k)) q=max(q, p[k][j]); } } q=dp[i^(1<<j)]+q/100.0; if( Sign(q-dp[i])>0 || Sign(q-dp[i])==0 && s[i^(1<<j)]<s[i]){ dp[i]=q; s[i]=s[i^(1<<j)]; s[i]+=('A'+j); } } } printf("%.2f\n%s\n", dp[t-1], s[t-1].c_str()); } return 0; }
View Code
相关文章推荐
- zoj 2563 Long Dominoes (状态压缩dp)
- ZOJ 3738 —— Buy the Pets(状态压缩DP)
- ZOJ 3471 Most Powerful(状态压缩DP)
- ZOJ 1100 Mondriaan's Dream【状态压缩】【DP】【DFS】
- ZOJ 3502 Contest 状态压缩dp
- (POJ 3254)Corn Fields <状态压缩DP 好题>
- HDU 1400 (POJ 2411 ZOJ 1100)Mondriaan's Dream(DP + 状态压缩)
- 概率dp+状态压缩HDU4336
- BZOJ_P1076 [SCOI2008]奖励关(概率期望DP+状态压缩DP)
- ZOJ 3551 Bloodsucker <概率DP>
- [HDU 4336]Card Collection[状态压缩DP][概率DP][容斥原理]
- zoj 3471状态压缩DP
- hdu 4336 Card Collector(状态压缩概率dp)
- ZOJ 3777 11th省赛 B Problem Arrangement【状态压缩DP】
- [HDU 4336] Card Collector (状态压缩概率dp)
- Hdu 4336 Card Collector 概率DP+状态压缩
- HDU 4649 Professor Tian(反状态压缩dp,概率)
- hdu 4336 全期望公式+状态压缩+概率dp
- ZOj 3471 Most Powerful 状态压缩DP
- <洛谷P1896互不侵犯>(状态压缩DP)