山東省第五屆ACM大學生程式設計競賽-Hearthstone II(組合數學-第二類Stirling數)
Hearthstone II
Time Limit: 2000ms Memory limit: 65536K 有疑問?點這裡^_^
題目描述
The new season has begun, you have n competitions and m well prepared decks during the new season. Each competition you could use any deck you want, but each of the decks must be used at least once. Now you wonder how many ways are there to plan the season
— to decide for each competition which deck you are going to used. The number can be very huge, mod it with 10^9 + 7.
輸入
The input file contains several test cases, one line for each case contains two integer numbers n and m (1 ≤ m ≤ n ≤ 100).
輸出
One line for each case, output one number — the number of ways.
示例輸入
3 2 100 25
示例輸出
6 354076161
提示
來源
2014年山東省第五屆ACM大學生程式設計競賽
題目意思:
輸入兩個數n,m,n是總數,n箇中有m個是備選的。
要在m中至少選一個,求總數n中共有多少種組合的情況。
例如題目中的3 2:
即n=3,有A B C三個數;m=2,A B備選但必須至少選一個;
所有所有可能的選法是:
A
B
A B
A C
B C
A B C
就是說選法中必須要有 A B 中的至少一個。
解題思路:
(傳送門→)組合數學-第二類Stirling數。
但是本題中m可區分,對於第二類Stirling數中求得的是m不可區分的情況下所有的組合總數。
所以需要用for迴圈遍歷,把1~m這m種情況下的S全部相加起來才是本題的結果。
題目意思:
輸入兩個數n,m,n是總數,n箇中有m個是備選的。
要在m中至少選一個,求總數n中共有多少種組合的情況。
例如題目中的3 2:
即n=3,有A B C三個數;m=2,A B備選但必須至少選一個;
所有所有可能的選法是:
A
B
A B
A C
B C
A B C
就是說選法中必須要有 A B 中的至少一個。
解題思路:
(傳送門→)組合數學-第二類Stirling數。
但是本題中m可區分,對於第二類Stirling數中求得的是m不可區分的情況下所有的組合總數。
所以需要用for迴圈遍歷,把1~m這m種情況下的S全部相加起來才是本題的結果。
/*
* Copyright (c) 2016, 煙臺大學計算機與控制工程學院
* All rights reserved.
* 檔名稱:Stirling.cpp
* 作 者:單昕昕
* 完成日期:2016年4月22日
* 版 本 號:v1.0
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
long long s[101][101];
const long long mod=1000000007;
int main()
{
int n,k;
while(~scanf("%d%d",&n,&k))
{//初始化
memset(s,0,sizeof(s));
s[n][1]=1;
s[n][n]=1;
s[1][1]=1;
int i,j;
for(i=2; i<=100; i++)//先根據資料範圍把所有s求出來
for(j=1; j<=i; j++)
s[i][j]=(s[i-1][j-1]+j*s[i-1][j])%mod;
long long ans=s[n][k];
for(i=2; i<=k; i++)//根據題意,k可區分
{
ans*=i;
if(ans>=mod)
ans%=mod;
}
printf("%lld\n",ans);
//cout<<ans<<endl;
}
return 0;
}
相關文章
- 第十屆山東省大學生程式設計競賽題解(A、F、M、C)程式設計
- 第二十屆西南科技大學ACM程式設計競賽(同步賽)ACM程式設計
- 第15屆浙江省大學生程式設計競賽D題程式設計
- 中國大學生數學競賽(非數學專業類)競賽大綱
- 第五屆省賽(軟體類)真題—-Java大學C組答案Java
- 無錫學院2024年ACM大學生程式設計競賽校選賽 題解ACM程式設計
- [題解][2021-2022年度國際大學生程式設計競賽第10屆陝西省程式設計競賽] Type The Strings程式設計
- 2024 CCPC第五屆遼寧省程式設計競賽 集訓2程式設計
- 2019山東ACM省賽補題題解ACM
- 紹興市大學生程式設計競賽程式設計
- 2020 年第一屆遼寧省大學生程式設計競賽 D.開心消消樂(點分治)程式設計
- 第 10 屆 CCPC 中國大學生程式設計競賽濟南站 遊記程式設計
- 2020“數維杯”國際大學生數學建模競賽賽題分析
- [SNCPC2024] 2024 年陝西省大學生程式設計 J題猜質數II 題解程式設計
- 2019年第二屆全國大學生大資料技能競賽通知大資料
- 華中農業大學第十三屆程式設計競賽程式設計
- [補題] 第 45 屆國際大學生程式設計競賽(ICPC)亞洲區域賽(上海)程式設計
- 第十屆中國大學生程式設計競賽 重慶站(CCPC 2024 Chongqing Site)程式設計
- 【ACM組合數學 | 錯排公式】寫信ACM公式
- 第二屆“重科杯”重慶科技大學程式設計競賽(同步賽)ptlks的題解(2024.5.18)程式設計
- 第43屆ACM-ICPC國際大學生程式設計競賽 亞洲區域賽南京站現場賽名額分配相關說明ACM程式設計
- 競真我 贏未來:首屆大學生數字體育競技大賽釋出會召開
- “位元組跳動杯”2018中國大學生程式設計競賽-女生專場程式設計
- 【數學】組合數學 - 排列組合
- 2018全國大學生數學建模競賽論文釋出
- 華中農業大學第十三屆程式設計競賽 題解程式設計
- 24山東省賽wp
- 北京資訊科技大學第十一屆程式設計競賽(重現賽)I程式設計
- 湖南大學2020屆ACM新生賽 部分題解ACM
- 10.5組隊訓練賽-2024CCPC山東省賽
- 藍橋杯__省賽__第七屆__C/C++__大學A組C++
- 藍橋杯__省賽__第八屆__C/C++__大學A組C++
- 藍橋杯__省賽__第九屆__C/C++__大學A組C++
- 大學生電子設計競賽電源資料
- 第十五屆浙江大學寧波理工學院程式設計大賽(同步賽)程式設計
- 第十五屆藍橋杯大賽軟體賽省賽 C/C++ 大學 A 組C++
- 第二屆“祥雲杯”網路安全大賽暨吉林省第四屆大學生網路安全大賽火熱報名中
- 【數學】組合數學 - 卡特蘭數
- 2015年藍橋杯六屆省賽大學B組真題