链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3502

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <string>
 4 #include <cmath>
 5 #include <cstring>
 6 using namespace std;
 7 int T, N;
 8 double p[15][15], dp[1<<15];
 9 string s[1<<15];
10 const double eps=1e-8;
11 int Sign( double x )
12 {
13     if( fabs(x)<eps )return 0;
14     return x>0?1:-1;
15 }
16 int main( )
17 {
18     scanf("%d", &T);
19     while(T--){
20         scanf("%d",&N );
21         for(int i=0; i<N; ++ i){
22             for( int j=0; j<N; ++j ){
23                 scanf("%lf", &p[i][j]);
24             }
25         }
26        int t=1<<N;double q;
27
28         memset(dp, 0, sizeof dp);
29         if(N==1)s[1]="A"; // N=1 p=0 不能被更新到~
30         for(int i=1; i<t; ++ i){
31             for( int j=0; j<N; ++ j ){// 更新到当前位
32                 if( i&(1<<j)) {
33                     q=0;
34                     for( int k=0; k<N; ++ k ){ // 已经被更新过的
35                         if(i&(1<<k))
36                         q=max(q, p[k][j]);
37                     }
38                 }
39                 q=dp[i^(1<<j)]+q/100.0;
40                 if( Sign(q-dp[i])>0 || Sign(q-dp[i])==0 && s[i^(1<<j)]<s[i]){
41                     dp[i]=q;
42                     s[i]=s[i^(1<<j)];
43                     s[i]+=('A'+j);
44                 }
45             }
46         }
47
48         printf("%.2f\n%s\n", dp[t-1], s[t-1].c_str());
49     }
50     return 0;
51 }

View Code

转载于:https://www.cnblogs.com/jian1573/p/3252898.html

ZOJ 3502 Contest 状态压缩 概率 DP相关推荐

  1. HDU 1693(状态压缩 插头DP)

    我们引用国家队2008年陈丹琦的大作--<基于连通性状态压缩的动态规划问题>,上面对于插头.轮廓线的概念有详细的解释,不再赘述. 我们使用一个三维数组,前两维表示所在的格子,后一维表示轮廓 ...

  2. 洛谷 P-4045 密码(AC自动机+状态压缩+数位DP+乱搞)

    洛谷 P-4045 密码 记AC的第一道黑题! 题意:已知一段密码包含了一些字符串,然后求满足条件的密码有多少个,数量小于42时还得全部输出 思路: 一开始WA了两个点,不知道WA的什么,索性把读入的 ...

  3. TYVJ 2054 [Nescafé29]四叶草魔杖 最小生成树 状态压缩/背包DP

    $ \rightarrow $ 戳我进TYVJ原题 [Nescafé29]四叶草魔杖 题目限制 时间限制 内存限制 评测方式 题目来源 1000ms 131072KiB 标准比较器 Local 题目背 ...

  4. hdu 5045 Contest(状态压缩DP)

    题解:我们使用一个二位数组dp[i][j]记录进行到第i个任务时,人组合为j时的最大和(这里的j我们用二进制的每位相应一个人). 详细见代码: #include <iostream> #i ...

  5. 洛谷 P2051 [AHOI2009]中国象棋 状态压缩思想DP

    P2051 [AHOI2009]中国象棋 题意: 给定一个n*m的空棋盘,问合法放置任意多个炮有多少种情况.合法放置的意思是棋子炮不会相互打到. 思路: 这道题我们可以发现因为炮是隔一个棋子可以打出去 ...

  6. zoj - 3502 Contest

    题意::&& 题解  ::here~~~~~~~~ #include<cstdio> #include<cmath> #include<iostream& ...

  7. 【原创】概率DP总结 by kuangbin

    概率DP主要用于求解期望.概率等题目. 转移方程有时候比较灵活. 一般求概率是正推,求期望是逆推.通过题目可以体会到这点. 首先先推荐几篇参考的论文: <信息学竞赛中概率问题求解初探> & ...

  8. Acwing291. 蒙德里安的梦想:状态压缩dp

    文章目录 题目分析 状态表示 状态转移 时间复杂度 题目链接 题目分析 题意重述:给定n*m的方格,看能分成多少个1 *2的小方块. 题目分析: 摆放方块的时候,先放横着的,再放竖着的.总方案数等于只 ...

  9. ZOJ 3802 Easy 2048 Again 状态压缩dp

    题目 Easy 2048 Again -–zoj 3802 Time Limit: 2 Seconds Memory Limit: 65536 KB Dark_sun knows that on a ...

最新文章

  1. postman 安装失败_【Postman】14 Postman与Jenkins集成使用
  2. 2013\Province_Java_C\1.猜年龄
  3. 30秒清除你电脑中的垃圾
  4. Android 入门实例完整代码
  5. javascript 幻灯片代码(含自动播放)
  6. cisco3560交换机的策略路由的设置
  7. JavaScript获取浏览器可视区域的宽高
  8. 大数据开发的26个专业术语
  9. ArcGIS 制图搭配:文字、比例尺等大小
  10. 假设检验 - 区间估计(总体标准差未知)
  11. Estimator::relativePose
  12. Hexo-fluid主题添加51LA统计
  13. 地面分割:Fast Segmentation of 3D Point Clouds for Ground Vehicles
  14. xgboost中自定义损失函数的使用方法
  15. 通用进制转换工具,可实现进制之间的任意转换
  16. A股日内回转交易意义何在?
  17. 服务器加独立显卡不显示不出来,win10独立显卡不见了怎么办_网站服务器运行维护,win10...
  18. 生活流水账(转载老婆的文章)
  19. [附源码]计算机毕业设计Python4S店汽车售后服务管理系统(程序+源码+LW文档)
  20. Vocabulary Tree 词汇树算法

热门文章

  1. 创建一个二维数组,以4行4列左对齐的方式将数组输出
  2. 如何查计算机电源功率,怎么看电脑电源功率
  3. 超详细目标检测,yolo3训练自己的数据集
  4. 藏红花怎么推广?百度下拉词|抖音下拉词框|信息流推广-三剑合璧
  5. python scrapy框架爬虫当当图书网
  6. AttributeError: module ‘onnxruntime‘ has no attribute ‘InferenceSession‘
  7. java drawimage api_HTML5 Canvas API中drawImage()方法的使用实例
  8. 11gR2 Grid Infrastructure Installation prerequisites On Windows
  9. C++ ---------------- 成员函数指针揭秘
  10. springwebflux 页面_Spring Security: Webflux 默认配置