http://acm.hdu.edu.cn/showproblem.php?pid=3625

/*****************************************************************************************************************************
**          题意:  有n个房间,每个房间都有一把钥匙可以打开其他房间的门;
**                  你想检查所有的房间,但初始所有的门都是被锁着的,
**                  你可以破坏一些门,检查它,并取出门里的钥匙去打开其他房间(1号门不允许破坏)
**                  问你最多可以破坏K个门,能够检查所有的房间的概率
**          题解:斯特灵数(Stirling)第一类。
**                  如果不考虑那个VIP,N个房间可以被最多K把钥匙打开的情况,
**                实际上就是1..N的置换组成最多K个环的情况,这个就是第一类strling数之和stirling[n][1] stirling[n][2] ... stirling[n][k]。
**                在这些情况里面,如果钥匙1恰好锁在房间1里也是不行的,所以还要减去N-1个房间被最多K-1把钥匙打开的情况数。
*******************************************************************************************************************************/
#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long LL;
LL stirling[25][25];
LL fac[25];
void init(){for(int i = 1;i <= 20;i++){stirling[i][i] = 1;for(int j = 1;j < i;j++)stirling[i][j] = stirling[i-1][j-1] + stirling[i-1][j] * (i-1);}fac[1] = 1;for(int i = 2;i <= 20;i++)fac[i] = i * fac[i-1] ;
}
int main(){init();int t,n,K;cin >> t;while(t--){cin >> n >> K;LL sum = 0;for(int i = 1;i <= K;i++){sum += stirling[n][i] - stirling[n-1][i-1];}printf("%.4lf\n",1.0*sum / fac[n]);}return 0;
}

hdu-3625 Examining the Rooms(斯特灵数第一类)相关推荐

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

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

  2. HDU 3625 Examining the Rooms(10年天津网赛,斯特灵数)

    转载请注明出处,谢谢http://blog.csdn.net/acm_cxlove/article/details/7854526       by---cxlove 题目:给出N个房间,每个房间的钥 ...

  3. HDU 3625 Examining the Rooms【第一类斯特灵数】

    <题目链接> <转载于 >>> > 题目大意: 有n个锁着的房间和对应n扇门的n把钥匙,每个房间内有一把钥匙.你可以破坏一扇门,取出其中的钥匙,然后用取出钥匙 ...

  4. hdu - 2512 一卡通大冒险 (斯特灵数 贝尔数)

    http://acm.hdu.edu.cn/showproblem.php?pid=2512 /** 题意:给你k张不同的卡放到n本书里有多少种放法?(n是无限大) 典型的 斯特灵数第二类 +贝尔数 ...

  5. ACM常用数列(斐波那契数列、卡特兰数、贝尔数、斯特灵数)

    斐波那契数列:任意一个数是其前两位数只和,即f(i)=f(i-1)+f(i-2),f(1)=f(2)=1 该数列也满足黄金分割比例,所以又成为黄金分割数列 相关题目链接:Fibbonacci Numb ...

  6. 斯特灵数 (Stirling数)

    @维基百科 在组合数学,Stirling数可指两类数,都是由18世纪数学家James Stirling提出的. 第一类 s(4,2)=11 第一类Stirling数是有正负的,其绝对值是个元素的项目分 ...

  7. C语言复习之判断Armstrong数(阿姆斯壮数)

    首先我们来了解一下什么是Armstrong数(阿姆斯壮数) 在百度百科上阿姆斯壮数是这样说的:Armstrong 数,就是n位数的各位数的n次方之和等于该数 比如: 153=1^3+5^3+3^3 1 ...

  8. Move Hurst Computer 移动平均赫斯特指数计算

    Move Hurst Computer 移动平均赫斯特指数计算 赫斯特指数(Hurst exponent) 赫斯特指数简介 基于重标极差(R/S)分析方法基础上的赫斯特指数(H)的研究是由英国水文专家 ...

  9. HDU 2643 Rank:第二类Stirling数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2643 题意: 有n个个选手参赛,问排名有多少种情况(可以并列). 题解: 简化问题: 将n个不同的元素 ...

最新文章

  1. Linux期末复习题库(3)
  2. 大白话系列之C#委托与事件讲解(一)
  3. 大学期间承接软件项目的一些个人观点
  4. mysql原生查询单条数据_原生查询数据库流程
  5. 【转载】Linux下有趣的命令
  6. Proteus仿真单片机:PIC18单片机的仿真
  7. 【ACL2020】Reasoning with Latent Structure Refinement for Document-Level Relation Extraction
  8. android客户端从服务器端获取json数据并解析的实现代码
  9. java里面数字四舍五入,Java数字的四舍五入
  10. 吴恩达机器学习与深度学习作业目录 [图片已修复]
  11. 4-1 可复用性概述
  12. Resharper上手指南转
  13. Git总结笔记1-搭建和使用30条简明笔记
  14. cisco Router专线路由器配置
  15. VS 的编译选项 build下的 platform target -- Any CPU和x86有什么影响?
  16. openwrt编译qca驱动不成功。gcc -isystem问题。
  17. bootstrap插件bootbox参数
  18. 数据分析案例-航空公司客户价值分析(聚类)
  19. 手机java时代浏览器_巅峰之战 三款最热java手机浏览器横评
  20. 电脑技巧:推荐几款装机必备的软件

热门文章

  1. 节前福利 | 三位大佬带你从客户成功、销售、市场端打造 To B 运作体系 !
  2. 万达电影携手神策数据 数据赋能打造全球领先电影生活生态圈
  3. 拓扑排序(字典序最小,字典序最小)
  4. python中字母大小写的转换,和一些字典的常规操作
  5. Hadoop/Spark生态圈里的新气象
  6. 在VIM里面设置自动补全功能
  7. 4.3---建立高度最小二叉树
  8. 简单的http服务器示例
  9. 【20120516】【中午】
  10. Ubuntu ssh 服务开启方法