• 【TFLSnoi李志帅】---函数递归


    fyx的博客地址,墙裂推荐!博客:https://www.cnblogs.com/qwn34/

    1315:【例4.5】集合的划分             

    老狮:这也是一道经典例题,做好这道题,你的递归差不多就没问题了【狗头保命】


    时间限制: 1000 ms         内存限制: 65536 KB
    提交数: 9463     通过数: 4074

    【题目描述】

    设S是一个具有n个元素的集合,Sa1a2an现将S划分成k个满足下列条件的子集合S1S2…Sk,且满足:

    1.Si

    2.SiSj          (1ijki≠j)

    3.S1S2S3SkS

    则称S1S2Sk是集合S的一个划分。它相当于把S集合中的n个元素a1a2an 放入k个(0kn30)无标号的盒子中,使得没有一个盒子为空。请你确定n个元素a1a2an 放入k个无标号盒子中去的划分数S(n,k)

    【输入】

    给出nk。

    【输出】

    n个元素a1a2an 放入k个无标号盒子中去的划分数S(n,k)

    【输入样例】

    10 6

    【输出样例】

    22827


    ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
    这道题有很多乱七八糟的符号,看起来有点怪怪的
    翻译过来就是。。。

    1.Si0     没有空盘子

    2.Si-Sj!0       也就是说每个盘子里元素数量各不相同   (1ijki≠j)

    3.S1+S2+S3++SkS     每个元素都要分进盘子

    上代码!

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int n,k;
     4 long long jh(int n,int k)
     5 {
     6     if(n<k || k==0)return 0;//递归边界,当盒子数比元素数大时,归零;当没有盒子时,归零;
     7     else if(k==n || k==1)return 1;//递归边界,当盒子数等于元素数时,归一;当只有一个盒子时,归一;
     8     return jh(n-1,k)*k+jh(n-1,k-1);//递归式
     9 }
    10 int main()
    11 {
    12     cin>>n>>k;
    13     cout<<jh(n,k);
    14     return 0;
    15 }

    最后————

    fyx的博客地址,墙裂推荐!博客:https://www.cnblogs.com/qwn34/

  • 相关阅读:
    Hibernate中日期(Date)类型 与oracle中日期的映射处理
    mssql注入经常使用的命令
    EL表达式遍历Map集合
    TomCat项目空间映射 配置
    JSP探针虚拟主机JSP环境检测工具
    什么是RSS
    大U盘容量的烦恼:copy 4G 以上单个文件时总是显示U盘已满
    Java初体验之bool
    何为Cookie
    转测试网站各项性能的31 个免费在线工具
  • 原文地址:https://www.cnblogs.com/TFLSc1908lzs/p/13538049.html
Copyright © 2020-2023  润新知