题面

洛谷

题解

\(f[i][j]\)表示有i个人参与游戏,从庄家(即1)数j个人获胜的概率是多少

\(f[1][1] = 1\)

这样就可以不用讨论淘汰了哪些人和顺序

枚举选庄家选那张牌, 枚举下一次的庄家

可以得到这次的庄家

然后转移即可

Code

#include<bits/stdc++.h>

#define LL long long
#define RG register using namespace std;
template<class T> inline void read(T &x) {
x = 0; RG char c = getchar(); bool f = 0;
while (c != '-' && (c < '0' || c > '9')) c = getchar(); if (c == '-') c = getchar(), f = 1;
while (c >= '0' && c <= '9') x = x*10+c-48, c = getchar();
x = f ? -x : x;
return ;
}
template<class T> inline void write(T x) {
if (!x) {putchar(48);return ;}
if (x < 0) x = -x, putchar('-');
int len = -1, z[20]; while (x > 0) z[++len] = x%10, x /= 10;
for (RG int i = len; i >= 0; i--) putchar(z[i]+48);return ;
} const int N = 55;
int a[N];
double f[N][N]; int main() {
//freopen(".in", "r", stdin);
//freopen(".out", "w", stdout);
int n, m;
read(n); read(m);
for (int i = 1; i <= m; i++) read(a[i]);
f[1][1] = 100;
for (int i = 2; i <= n; i++)
for (int j = 1; j <= m; j++) {
int p = a[j]%i == 0 ? i : a[j]%i;
for (int k = 1; k < i; k++) {
if (++p > i) p = 1;
f[i][p] += f[i-1][k]/m;
}
}
for (int i = 1; i <= n; i++)
printf("%.2lf%% ", f[n][i]);
return 0;
}

洛谷 P2059 [JLOI2013]卡牌游戏(概率dp)的更多相关文章

  1. 洛谷 P2059 [JLOI2013]卡牌游戏 解题报告

    P2059 [JLOI2013]卡牌游戏 题意 有\(n\)个人玩约瑟夫游戏,有\(m\)张卡,每张卡上有一个正整数,每次庄家有放回的抽一张卡,干掉从庄家起顺时针的第\(k\)个人(计算庄家),干掉的 ...

  2. 洛谷P2059 [JLOI2013]卡牌游戏

    题目描述 N个人坐成一圈玩游戏.一开始我们把所有玩家按顺时针从1到N编号.首先第一回合是玩家1作为庄家.每个回合庄家都会随机(即按相等的概率)从卡牌堆里选择一张卡片,假设卡片上的数字为X,则庄家首先把 ...

  3. P2059 [JLOI2013]卡牌游戏 概率DP

    link:https://www.luogu.org/problemnew/show/P2059 题意: 有n个人,类似约瑟夫环的形式踢人,但是报的数是不同的,是在给定的许多数中随机抽取,问最后第i个 ...

  4. [JLOI2013]卡牌游戏 概率DP

    [JLOI2013]卡牌游戏 概率DP 题面 \(dfs\)复杂度爆炸,考虑DP.发现决策时,我们只用关心当前玩家是从庄家数第几个玩家与当前抽到的牌是啥.于是设计状态\(f[i][j]\)表示有\(i ...

  5. BZOJ3191或洛谷2059 [JLOI2013]卡牌游戏

    BZOJ原题链接 洛谷原题链接 我们可以倒着来\(DP\). 设\(f[i][j]\)表示剩余\(i\)个人,从庄家数起第\(j\)个人的胜率,设当前枚举到第\(k\)张牌,该情况下这一轮淘汰的位置为 ...

  6. 【bzoj3191】[JLOI2013]卡牌游戏 概率dp

    题目描述 n个人围成一圈玩游戏,一开始庄家是1.每次从m张卡片中随机选择1张,从庄家向下数个数为卡片上的数的人,踢出这个人,下一个人作为新的庄家.最后一个人获胜.问每个人获胜的概率. 输入 第一行包括 ...

  7. [bzoj3191][JLOI2013][卡牌游戏] (概率dp)

    Description   N个人坐成一圈玩游戏.一开始我们把所有玩家按顺时针从1到N编号.首先第一回合是玩家1作为庄家.每个回合庄家都会随机(即按相等的概率)从卡牌堆里选择一张卡片,假设卡片上的数字 ...

  8. [luogu2059 JLOI2013] 卡牌游戏 (概率dp)

    题目描述 N个人坐成一圈玩游戏.一开始我们把所有玩家按顺时针从1到N编号.首先第一回合是玩家1作为庄家.每个回合庄家都会随机(即按相等的概率)从卡牌堆里选择一张卡片,假设卡片上的数字为X,则庄家首先把 ...

  9. Luogu 2059 [JLOI2013]卡牌游戏 - 概率DP

    Solution 设状态 $F[i][j] $为 还剩余 $i$ 个人时, 第 $j$ 个人 的胜率. 边界: $F[1][1] = 1$(只剩下一个人了). 这样设置状态就能使 $i-1$ 个人的答 ...

随机推荐

  1. Python2.7的安装、python3的安装

    >登录python官网下载python2.7的相关版本 python官网链接 >根据平台选择相应的版本 >下载完毕后点击安装即可 >配置环境变量 >安装成功 2 pyth ...

  2. linq 条件查询与分页

    <div>姓名:<asp:TextBox ID="T1" runat="server"></asp:TextBox>< ...

  3. opennebula模板对照比较

    良好模板 有问题模板

  4. Linux gtypist

    一.简介 Typist (gtypist)是一个打字练习软件,用来提升打字的速度.   二.安装 1)源码方式 http://ftp.gnu.org/gnu/gtypist/   三.使用 http: ...

  5. Django--form验证及错误处理

    需求 from表单验证和ajax验证时返回的错误信息处理 速查 1.form表单提交时错误信息显示 views 1 2 error = form表单实例化对象.errors return render ...

  6. Django框架 之 中间件

    Django框架 之 中间件 浏览目录 中间件介绍 自定义中间件 中间件的执行流程 中间件版登录验证 一.中间件介绍 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个 ...

  7. jquery dropdownlist.js

    $.fn.extend({ SetDict: function (option) { var txtControl = $(this); if (!txtControl.hasClass(" ...

  8. 黑盒测试实践--Day6 11.30

    黑盒测试实践--Day6 11.30 今天完成任务情况: 应用设计的场景用例,完成测试用例的编写 完成测试用例在自动化测试工具QTP上的测试 分析测试结果得到缺陷报告 小靳 软件测试 今天主要钻研了q ...

  9. 原生ajax访问服务器所展现的现象

    <!DOCTYPE html><html><head><meta charset="UTF-8"><title>ajax ...

  10. exe文件停止运行的情况

    1.程序问题. 2.服务器问题. 3.内存占用问题. 一般情况下,关掉程序,重新打开就可以. 上述情况不行,则关掉电脑,重启. 再不行,Ctr + Alt + Del关掉程序的进程. 不行, Win ...