zoukankan      html  css  js  c++  java
  • XidianOJ 1112 Too stupid

    题目描述

    某天 light由于太富而且太帅遭到了歹徒的袭击,现在他遇到了n个歹徒,准备对light施行不法行为,虽然light身体强壮,但是毕竟只有一个人肯定打不过那么多歹徒,但是高智商的light觉得歹徒们非常stupid,不打算束手就擒。经过观察他发现这些歹徒是有派系之分的
    我们规定 A与B,B与C为同一个派系,那么A与C也为同一个派系
    light认为,如果了解了歹徒的派系情况,他就可以用一些特殊的计谋战胜他们。但是,歹徒之间形成派系的可能性很多,而light对此一无所知。
    现在问题来了,歹徒们有多少种可能形成派系的方案呢。由于方案数可能会很大,请对1000000007取模后输出。

    输入

    多组数据,处理到EOF

    每组数据 第一行整数n       1 <= n <=1000

    输出

    输出方案数, 并对1000000007(1e9+7)取模

    --正文

    转换成球放盒的问题

      n个球,放入n个盒子中,允许有空盒,求总方案数

    第二类Stirling数

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    #define MOD 1000000007
    long long f[1001][1001];
    long long sum[1001] = {0};
    int main(){
        int i,j;
        f[1][0] = 0; f[1][1] = 1;
        for (i=2;i<=1000;i++){
            f[i][0] = 0; f[i][1] = 1;
            for (j=2;j<=i-1;j++){
                f[i][j] = (f[i-1][j-1] + j*f[i-1][j]) % MOD;
            }
            f[i][i] = 1;
        }
        for (i=1;i<=1000;i++){
            for (j=1;j<=i;j++){
                sum[i] = (sum[i] + f[i][j]) % MOD;
            }
        }
        int n;
        while (scanf("%d",&n) != EOF){
            printf("%lld
    ",sum[n]);
        }
        return 0;
    } 
  • 相关阅读:
    json_encode 中文处理
    PHP 函数的参数
    IT菜鸟之OSI七层模型
    IT菜鸟之网线制作
    IT菜鸟之网站搭建(emlog)
    IT菜鸟之BIOS和VT
    IT菜鸟之虚拟机VMware的使用
    IT菜鸟之虚拟机VMware的安装
    IT菜鸟之计算机软件
    IT菜鸟之计算机硬件
  • 原文地址:https://www.cnblogs.com/ToTOrz/p/6155515.html
Copyright © 2011-2022 走看看