题意:有个游戏,两个人玩。有n个卡片,洗牌后放入编号为1到n的盒子里,然后两个人轮流做如下操作,拿出盒子中编号最小的卡片k,然后再去编号为k的盒子中拿出卡片,依次类推,直到没有卡片可拿为止。拿走最后一张卡片的玩家获胜。求先手能够在K次操作以内获胜的概率,(以分数形式输出)

1<=k<=n<=50;

思路:其实就是第一类斯特林数,

第一类Stirling数 s(p,k)

s(p,k)的一个的组合学解释是:将p个物体排成k个非空循环排列的方法数。

s(p,k)的递推公式: s(p,k)=(p-1)*s(p-1,k)+s(p-1,k-1) ,1<=k<=p-1

边界条件:s(p,0)=0 ,p>=1  s(p,p)=1  ,p>=0

嗯,这个题就是n张卡排成不大于K的奇数个环排列的方法数,因为说的是先手胜。然后除以N!,因为有n!中洗牌数。

然后最简单的方法就是java大数,奈何我不会,只好网上扒了一段代码充数了,这就去学学java大数。

import java.io.*;
import java.math.*;
import java.util.*;public class Main
{public static void main(String[] args) {Scanner cin = new Scanner(System.in);BigInteger dp[][] = new BigInteger[51][51];BigInteger d[] = new BigInteger[51];int i, j;//dp[i][j] = dp[i-1][j] * (i-1) + dp[i-1][j-1]for(i = 1; i <= 50; i++){dp[i][0] = BigInteger.valueOf(0);dp[i][i] = BigInteger.valueOf(1);for(j = 1; j < i; j++){dp[i][j] = dp[i-1][j].multiply(BigInteger.valueOf(i-1));dp[i][j] = dp[i][j].add(dp[i-1][j-1]);}}d[0] = BigInteger.valueOf(1);for(i = 1; i <= 50; i++)  d[i] = d[i-1] .multiply(BigInteger.valueOf(i));while(cin.hasNextInt()){int n, k;BigInteger sum, gcd;n = cin.nextInt();k = cin.nextInt();sum = BigInteger.valueOf(0);for(i = 1; i <= k; i+=2)  sum = sum.add(dp[n][i]);gcd = sum.gcd(d[n]);System.out.println(sum.divide(gcd)+"/"+d[n].divide(gcd));}}}

zoj3344 第一类斯特林数+java大数相关推荐

  1. 【2019雅礼集训】【CF 960G】【第一类斯特林数】【NTT多项式】permutation

    目录 题意 输入格式 输出格式 思路 代码 题意 找有多少个长度为n的排列,使得从左往右数,有a个元素比之前的所有数字都大,从右往左数,有b个元素比之后的所有数字都大. n<=2*10^5,a, ...

  2. 洛谷P4609 [FJOI2016]建筑师 【第一类斯特林数】

    题目链接 洛谷P4609 题解 感性理解一下: 一神带\(n\)坑 所以我们只需将除了\(n\)外的\(n - 1\)个元素分成\(A + B - 2\)个集合,每个集合选出最大的在一端,剩余进行排列 ...

  3. 第一类斯特林数学习记录

    最近做题有时会碰到斯特林数(Stirling数),就觉得好好的学习一番,于是呢,写下这篇博客,来记录一些知识 简单介绍 第一类斯特林数表示表示将 n 个不同元素构成m个圆排列的数目.--百度百科 第一 ...

  4. 建筑师 第一类斯特林数

    文章目录 目录 题意: 思路: 目录 题意: 给你一个nnn的排列,排列中的数代表他的高度,问你有多少个排列能使得从左边能看到aaa个建筑,从右边能看到bbb个建筑. 如果建筑iii左边没有任何比他高 ...

  5. [HDU 3625] Examining the Rooms(第一类斯特林数)

    Examining the Rooms problem solution code problem hdu 3625 solution 之前考试有一道题:最多砸开 kkk 扇门,采取最有操作,求把 n ...

  6. CF960G-Bandit Blues【第一类斯特林数,分治,NTT】

    正题 题目链接:https://www.luogu.com.cn/problem/CF960G 题目大意 求有多少个长度为nnn的排列,使得有AAA个前缀最大值和BBB个后缀最大值. 0≤n,A,B≤ ...

  7. [数学最安逸][UVa1638改编][第一类斯特林数+组合数]杆子的排列

    有高为1,2,3,...,n的杆子各一根排成一行.从左边能看到l根,从右边能看到r根,求有多少种可能. (l,r <= 200,n <= 200000) 给出T 组数据 (T <= ...

  8. 斯特林数 java实现_斯特林数学习笔记

    定义 第一类斯特林数\(s(n,m)\)表示把\(n\)个不同元素放到\(m\)个相同圆排列里的方案数. 有转移方程: \[s(n,m)=s(n-1,m-1)+(n-1)\times s(n-1,m) ...

  9. 【BJOI2019】勘破神机(下降幂转自然幂)(第一类斯特林数)(特征方程)

    传送门 题解: 完全自己推出来的第一道数学神题. 首先我们知道宽度为222的部分方案数是斐波那契数列. 设fnf_nfn​表示长度为nnn的时候方案数,题目要求的实际上是这个东西: ∑n=lr(fnk ...

最新文章

  1. 信息系统项目管理师-战略管理知识点
  2. 华三交换机配置多个镜像口_配置本地端口镜像详解(多个镜像口:多个观察口)...
  3. 经典C语言程序100例之三
  4. 新浪的股票接口 c#
  5. N皇后问题12 · N-Queens
  6. 我用休眠做并发控制,搞垮了下游服务
  7. 利用第三方工具上传文件
  8. jsp页面 字体颜色 白色_电商美工不会优化页面?试试这6招
  9. pandas不可哈希化问题,unhashable type: ‘pandas._libs.tslibs.offsets.Hour
  10. 音频格式之AAC(高级音频编码技术)
  11. Cisco2811做端口映射
  12. Word入门教程之插入文字批注(转)
  13. 大数据的核心价值是什么,主要体现在哪几方面?
  14. 随笔记录使用DNK时遇到的几个问题
  15. 电脑chm文件打不开解决方法
  16. Linux素描软件,Linux 桌面现状素描
  17. java反射获取子类或者父类的属性值
  18. java多线程心法(基础概念)
  19. C#学习资源网站汇总
  20. 谷歌浏览器64位浏览器网页显示不完全修改方法

热门文章

  1. 张尧学院士:云计算仍未根本解决服务共享问题
  2. 风力发电系统实训装置QY-20B
  3. flash画元件是注意的一项
  4. springboot毕设项目汽车美容管理系统设计213wf(java+VUE+Mybatis+Maven+Mysql)
  5. 计算机主板的分类情况,计算机 主板的分类.ppt
  6. 几个不为人知的手机实用技巧,你肯定没用过!一般人我不告诉他
  7. ubuntu 安装bin 文件不能执行的问题
  8. Google I/O 2018:Make Good Things Together
  9. R软件的rattle安装指南
  10. bluej 编程_BlueJ和Greenfoot:学习Java的最佳IDE