UVA1637Double Patience(概率 + 记忆化搜索)
训练指南P327
题意:36张牌分成9堆, 每堆4张牌。每次拿走某两堆顶部的牌,但需要点数相同。如果出现多种拿法则等概率的随机拿。 如果最后拿完所有的牌则游戏成功,求成功的概率。
开个9维数组表示每一堆的状态,模拟搜索一下
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int Max = ;
char s[Max][Max];
int A[][Max * Max];
int vis[Max][Max][Max][Max][Max][Max][Max][Max][Max];
double d[Max][Max][Max][Max][Max][Max][Max][Max][Max];
double dfs(int s1, int s2, int s3, int s4, int s5, int s6, int s7, int s8, int s9)
{
if (vis[s1][s2][s3][s4][s5][s6][s7][s8][s9])
return d[s1][s2][s3][s4][s5][s6][s7][s8][s9];
vis[s1][s2][s3][s4][s5][s6][s7][s8][s9] = ;
int T[] = {, s1, s2, s3, s4, s5, s6, s7, s8, s9};
bool flag = true;
for (int i = ; i <= ; i++)
{
if (T[i])
{
flag = false;
break;
}
}//如果全是0,表示结束,这个状态为1
if (flag)
{
return d[s1][s2][s3][s4][s5][s6][s7][s8][s9] = 1.0;
}
int tot = ;
double cnt = ;
for (int i = ; i <= ; i++)
{
for (int j = i + ; j <= ; j++)
{
if (T[i] > && T[j] > && A[i][ T[i] ] == A[j][ T[j] ])
{
T[i]--;
T[j]--;
tot++; // 当前有几种选择方案
cnt += dfs(T[], T[], T[], T[], T[], T[], T[], T[], T[]); // 选择 i 堆 和 j 堆之后剩下的全部取光的概率
T[i]++;
T[j]++;
}
}
}
if (tot > )
d[s1][s2][s3][s4][s5][s6][s7][s8][s9] = cnt / (1.0 * tot); // (1 / tot ) * cnt;当前状态概率
return d[s1][s2][s3][s4][s5][s6][s7][s8][s9];
}
int main()
{
while (scanf("%s%s%s%s", s[], s[], s[], s[]) != EOF)
{
for (int i = ; i <= ; i++)
A[][i] = s[i][] - ''; // A[i][j]用于记录第i堆第j个
for (int i = ; i <= ; i++)
{
for (int j = ; j <= ; j++)
{
scanf("%s", s[j]);
A[i][j] = s[j][] - '';
}
}
memset(vis, , sizeof(vis));
memset(d, , sizeof(d));
dfs(, , , , , , , , ); // 所有的堆都是4个开始搜索
printf("%.6lf\n", d[][][][][][][][][]);
}
return ;
}
UVA1637Double Patience(概率 + 记忆化搜索)的更多相关文章
- Topcoder SRM 656 (Div.1) 250 RandomPancakeStack - 概率+记忆化搜索
最近连续三次TC爆零了,,,我的心好痛. 不知怎么想的,这题把题意理解成,第一次选择j,第二次选择i后,只能从1~i-1.i+1~j找,其实还可以从j+1~n中找,只要没有被选中过就行... [题意] ...
- Codeforces 540D Bad Luck Island - 概率+记忆化搜索
[题意] 一个岛上有三种生物A,B,C,各有多少只在输入中会告诉你,每种最多100只 A与B碰面,A会吃掉B, B与C碰面,B会吃掉C, C与A碰面,C会吃掉A...忍不住想吐槽这种环形食物链 碰面是 ...
- HDU 5001 概率DP || 记忆化搜索
2014 ACM/ICPC Asia Regional Anshan Online 给N个点,M条边组成的图,每一步能够从一个点走到相邻任一点,概率同样,问D步后没走到过每一个点的概率 概率DP 測 ...
- 【NOI2005】聪聪和可可 概率与期望 记忆化搜索
1415: [Noi2005]聪聪和可可 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1635 Solved: 958[Submit][Statu ...
- Codeforces 148D Bag of mice:概率dp 记忆化搜索
题目链接:http://codeforces.com/problemset/problem/148/D 题意: 一个袋子中有w只白老鼠,b只黑老鼠. 公主和龙轮流从袋子里随机抓一只老鼠出来,不放回,公 ...
- HDU - 5001 Walk(概率dp+记忆化搜索)
Walk I used to think I could be anything, but now I know that I couldn't do anything. So I started t ...
- 多校5 1001 HDU5781 ATM Mechine 记忆化搜索+概率
// 多校5 1001 HDU5781 ATM Mechine // http://acm.hdu.edu.cn/search.php?field=problem&key=2016+Multi ...
- CodeForces 398B 概率DP 记忆化搜索
题目:http://codeforces.com/contest/398/problem/B 有点似曾相识的感觉,记忆中上次那个跟这个相似的 我是用了 暴力搜索过掉的,今天这个肯定不行了,dp方程想了 ...
- BZOJ4832: [Lydsy1704月赛]抵制克苏恩 (记忆化搜索 + 概率DP)
题意:模拟克苏恩打奴隶战对对方英雄所造成的伤害 题解:因为昨(今)天才写过记忆化搜索 所以这个就是送经验了 1A还冲了个榜 但是我惊奇的发现我数组明明就比数据范围开小了啊??? #include &l ...
随机推荐
- 跳转时候提示Attempt to present on while a presentation is in progress
出现这种情况,例如:我在获取相册图片后,直接present到另一个页面,但是上一个页面可能还未dismiss,所以,要在获取相册图片的dismiss方法的complete的block里面写获取图片及跳 ...
- iOS App之间跳转
1.先来看看效果,这里做了三个功能 从MyApp跳转到YourApp 从MyApp跳转到YourApp的指定页面 从YourApp使用跳转url的方式跳回MyApp 2.实现app之间的跳转需要注意两 ...
- lnmp 预设iptables设置
「LNMP」iptables初始配置 首先使用命令iptables -P INPUT ACCEPT允许所有连接,否则容易把自己关在外边.然后使用iptables -F;iptables -X;ip ...
- easyUI的基础布局easyui-accordion
---恢复内容开始--- <html> <head> <meta charset="UTF-8"> <title>树状图</t ...
- IT技术思维导图
在网上看到有个人总结的java技术的东东,觉得很好,就保存下来了,码农还真是累啊,只有不断的学习才能有所提高,才能拿更多的RMB啊. java技术思维导图 服务端思维导图 前端思维导图
- 《WePayUI组件设计的秘密》——2016年第一届前端体验大会分享
本文是博主参加第一届前端体验大会 | 物勒工名做的分享<WePayUI组件设计的秘密>,内容主要分为2个部分: 一.浅析UI库/框架的未来 讨论的UI库或者框架,主要包含展示和交互的css ...
- webpack入门——webpack的安装与使用
一.简介 1.什么是webpack webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. ...
- 大三那年在某宝8块钱买的.NET视频决定了我的职业生涯
前言 谨以此文献给那些还在大学中迷茫的莘莘学子们! 韩愈在<师说>中提出了作为师者应该做的三件事:传道.授业.解惑. 1.传道:培养学生的道德观 2.授业:传授学生专业技能 3.解惑:解答 ...
- xwalk_core_library-15.44.384 .13.aar 百度云分享
xwalk_core_library-15.44.384.13.aar 这玩意下载很慢 特意放到百度,需要的可以通过百度下载 http://pan.baidu.com/s/1nt0Cmbn 下完后放到 ...
- Android开发之画图的实现
Android开发之画图的实现 四天前上完安卓的第一节课,真的是一脸懵逼,尽管熊哥说和java是差不多的,然而这个包和那个包之间的那些转换都是些什么鬼呀!!!但是四天的学习和操作下来,我觉得安卓 ...