https://vjudge.net/problem/UVA-1637

36张牌分成9堆,每堆4张牌。每次可以拿走某两堆顶部的牌,但需要点数相同。

如果有多种拿法则等概率的随机拿。

如果最后拿完所有牌则游戏成功。按顺序给出每堆牌的4张牌,求成功概率。

#include<cstdio>
using namespace std;
char s[10][5];
char ss[5];
int left[10];
int v[2000001];
double dp[2000001];
int t;
int state()
{int tmp=0;for(int i=1;i<=9;i++) tmp=tmp*5+left[i];return tmp;
}
double solve()
{int x=state();if(!x) return 1.0;if(v[x]==t) return dp[x];double ans=0; int cnt=0;for(int i=1;i<9;i++)for(int j=i+1;j<=9;j++) if(left[i]&&left[j]&&s[i][left[i]]==s[j][left[j]]){left[i]--; left[j]--;ans+=solve();cnt++;left[i]++; left[j]++;}if(cnt) dp[x]=1.0*ans/cnt;else dp[x]=0;v[x]=t;return dp[x];
}
int main()
{while(scanf("%s",ss)!=EOF){s[1][1]=ss[0];for(int j=2;j<=4;j++) {scanf("%s",ss);s[1][j]=ss[0];}for(int i=2;i<=9;i++)for(int j=1;j<=4;j++){scanf("%s",ss);s[i][j]=ss[0];}t++;for(int i=1;i<=9;i++) left[i]=4;printf("%.6lf\n",solve());}
}

转载于:https://www.cnblogs.com/TheRoadToTheGold/p/6938107.html

uva 1637 Double Patience相关推荐

  1. UVA 1637 - Double Patience(概率DP)

    题目链接 https://cn.vjudge.net/problem/UVA-1637 [题意] 36张牌分成9堆,每堆4张,每次可以拿走两堆顶部的牌,但是要求两张牌的点数相同,如果有多种取法那就等概 ...

  2. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  3. 数学期望和概率DP题目泛做(为了对应AD的课件)

    题1: Uva 1636 Headshot 题目大意: 给出一个000111序列,注意实际上是环状的.问是0出现的概率大,还是当前是0,下一个还是0的概率大. 问题比较简单,注意比较大小: A/C & ...

  4. 《题目与解读》红书 训练笔记目录《ACM国际大学生程序设计竞赛题目与解读》

    虽然2012年出版的老书了,但是是由三次世界冠军的上海交大ACM队出版的书籍,选择的题目是ACM经典中的经典,书中有非常详细的题解,可以学到很多东西,值得一刷. 目录 第一部分 第一章 数学 1.1 ...

  5. (转)计算几何模板 - kuangbin

    转自:https://kuangbin.github.io/2019/04/28/20190428/#more 二维几何 // `计算几何模板` const double eps = 1e-8; co ...

  6. 计算几何模板中的代码

    计算几何模板代码选自kuangbin 7 计算几何 7.1 二维几何 // `计算几何模板` const double eps = 1e-8; const double inf = 1e20; con ...

  7. 数论基础(附加例题)

    A Colossal Fibonacci Numbers!                             (循环节) 题意:求fibonacci数列f(a^b)项mod n (0<a, ...

  8. 算法竞赛入门10.2计数与概率基础例题代码

    10.6 Irrelevant Elements UVA1635 思路:基础组合计数 #include<cstdio> #include<cstring> #include&l ...

  9. UVa Online Judge 工具網站

    UVa Online Judge 工具網站 转自http://www.csie.ntnu.edu.tw/~u91029/uva.html Lucky貓的ACM園地,Lucky貓的 ACM 中譯題目 M ...

  10. UVA 11752 超级幂

    UVA 11752 超级幂 Z - The Super Powers Time Limit:1000MS     Memory Limit:0KB     64bit IO Format:%lld & ...

最新文章

  1. 避免资源死锁:识别已打开的事务
  2. 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记20 Multiple MVCs 多MVC模式、NavigationController导航控制器...
  3. 建造者模式(Builder)
  4. 【PHPExcel】数学公式
  5. 人工智能“上位”会让程序员消失吗?
  6. mysql密码有格式要求吗_高考日语作文10个格式要求!你能看出图中5处错误吗?...
  7. c语言将数组变为空,求助~~ 如何把数组变成动态输入的?
  8. 【Java架构师】JVM性能优化(一)JVM技术入门下
  9. Linux 截取线上日志
  10. 【操作系统】—操作系统的发展与分类
  11. linux会计软件,免费好用的会计软件(Manager for Mac)
  12. element树形控件拖拽allow-drop控制
  13. 小觅双目摄像头标准版视觉惯性 SLAM DEMO
  14. html调色板快捷键,在线网页调色板
  15. java求面积_Java计算几何图形的面积
  16. MATLAB 2014a与 VS2013 配置过程
  17. 第三方支付平台业务分析
  18. 国外大学网上免费课程
  19. 梯度是什么,简单说梯度下降是什么
  20. MFC隐藏主窗口运行的几种方法

热门文章

  1. Mongodb新手看这一篇就够了
  2. ofdm原理_5G进行时|5G NR物理层详解:原理、模型和组件
  3. nvm 下载node 下载不下来_音乐下载 黄子韬爸妈可以不走吗
  4. android异步任务框架,详解Android App中的AsyncTask异步任务执行方式
  5. mysql union limit_mysql中的union和order by、limit
  6. matlab出图时汉字都变成方框_linux下Matlab 2020中文字体方框问题解决方法
  7. Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)
  8. Idea Debug多线程不进断点问题处理
  9. Redis源代码分析(三十)--- pubsub公布订阅模式
  10. 遍历点击事件(屏蔽同类名的其它点击事件,防止多次请求)