XDOJ1145–组合数学四之Carnival Phantasm

XDOJ1145–组合数学四之Carnival Phantasm描述:为解救可怜的武内崇老师,saber、远坂、爱尔奎特、希耶尔等人组成了第六科急救队!最终,由琥珀开发出了禁药,分身光线(这药是内服还是外用的==?),将爱尔奎特批量化生产,来对月世界进行全面的地毯式搜索。现已知,第六科共有m个复制人(每个复制人完全一样),月世界有n个城市,每个城市会被一个复制人搜索一遍。问:共有多少种分配方法。(根据时空管理局劳务法更定,每个复制人又要分得工作。)…

大家好,又见面了,我是你们的朋友全栈君。

描述:

为解救可怜的武内崇老师,saber、远坂、爱尔奎特、希耶尔等人组成了第六科急救队!最终,由琥珀开发出了禁药,分身光线(这药是内服还是外用的= =?),将爱尔奎特批量化生产,来对月世界进行全面的地毯式搜索。

现已知,第六科共有m个复制人(每个复制人完全一样),月世界有n个城市,每个城市会被一个复制人搜索一遍。问:共有多少种分配方法。(根据时空管理局劳务法更定,每个复制人又要分得工作。)

Input

每一行有一个m和n(1<=m<n<1000)

Output

每一行输出一个可能的个数(模10007取余)

Sample Input

2 4
1 5

Sample Output

7
1

 

解题思路:

这其实是求第二类斯特林数。{n,k}表示将有n件物品的集合划分成k个非空子集的方法数,显然{n,1}=1,{n,n} = 1,{n,0} = 0,并有以下递归式:

{n,k} = k{n-1,k}+{n-1,k-1}, n>0

解释:给定一个有n个元素的集合,要把它分成k个非空的部分,我们或者将最后元素单独放入一类(用{n-1,k-1}种方式),或者把它与前n-1个元素的某个非空子集放在一起。在后一种情况下,有k{n-1,k}种可能性,因为把前面n-1个元素分成k个非空部分{n-1,k}种方法的每一种都给出k个子集。

最后有一点要说明的是,虽然题目是n<1000,但实际提交发现其实是包括1000的,因为这种原因纠结了好长时间 。

#include <iostream>
using namespace std;
const int N = 1001;
int stirling[N][N];
int getStirling(int n,int k)
{
    if(stirling[n][k]!=-1)
       return stirling[n][k];
    else
        stirling[n][k] = (k*getStirling(n-1,k)+getStirling(n-1,k-1))%10007;
    return stirling[n][k];
}

int main()
{

    for(int i=0;i<N;++i)
        for(int j=i;j<N;++j)
            stirling[j][i] = -1;
    for(int i=1;i<N;++i)
    {
        stirling[i][1] = 1;
        stirling[i][i] = 1;
    }
    int m,n;
    while(cin>>m>>n)
    {
        cout<<getStirling(n,m)<<endl;
    }
    return 0;
}

 

最后欢迎大家访问我的个人网站: 1024s

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139033.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java 四舍五入运算_JAVA正确的四舍五入方法「建议收藏」

    java 四舍五入运算_JAVA正确的四舍五入方法「建议收藏」在JDK版本为1.8的情况运行下面的代码,会发现很神奇的情况(见运行结果)。看如下代码:packagecom.longge.mytest;importjava.math.BigDecimal;importjava.math.RoundingMode;importjava.text.DecimalFormat;importorg.junit.Test;publicclassTestDecimal…

    2022年5月11日
    47
  • MS17010(永恒之蓝)漏洞利用与复现

    MS17010(永恒之蓝)漏洞利用与复现一:前言EhernalBlue通过Tcp端口445和139来利用SMBv1和NBT中的远程代码执行漏洞,恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只需要开机上网,攻击者就能在电脑和服务器中植入勒索软件。复现环境:攻击机kaliIP:10.10.10.136…

    2022年6月11日
    111
  • 决策树算法(C4.5)

    决策树算法(C4.5)

    2021年11月19日
    36
  • 摘星-上升篇

    以下内容均来自阳光占星,如有冒犯,告知删除!上升金牛——歌者的哼唱有这么一类人,可能有着细致柔和的五官,容易发胖的体质以及坚定的眼神。有点害羞与腼腆;喜欢哼唱着小曲,不喜欢拥挤的人群而喜欢宁静的自然。这样的一群人就是生活在我们身边的上升金牛。他们喜欢舒缓的生活节奏,喜欢按照自己的节奏去一点点的完成计划,不喜欢突如其来的变动扰乱了自己的生活。金牛是一个喜欢稳定和安逸的星座,并且由于金牛的守护星为金星,上升金牛也诞生出更多的艺术色彩。但上升金牛的审美一直被吐槽,旁人就必须忍受他那万年…

    2022年4月6日
    74
  • Linux命令行大全

    Linux命令行大全#Linux命令行大全###第一部分学习shell####1shell是什么#####1.1终端仿真器#####1.2第一次键盘输入######1.2.1命令历史记录######

    2022年7月3日
    32
  • GridLayout在API21之前的兼容

    GridLayout在API21之前的兼容问题:GridLayout在API21时引入了android:layout_columnWeight和android:layout_rowWeight来解决平分问题,但是api21前怎么办呢?解决:1.引入兼容包:compile’com.android.support:gridlayout-v7:23.0.0’2.为GridLayout设置权重:app:layout_column…

    2022年6月3日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号