AcWing 3195. 有趣的数
生活随笔
收集整理的這篇文章主要介紹了
AcWing 3195. 有趣的数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
我們把一個數(shù)稱為有趣的,當(dāng)且僅當(dāng):
它的數(shù)字只包含 0,1,2,3,且這四個數(shù)字都出現(xiàn)過至少一次。
所有的 0 都出現(xiàn)在所有的 1 之前,而所有的 2 都出現(xiàn)在所有的 3 之前。
最高位數(shù)字不為 0。
因此,符合我們定義的最小的有趣的數(shù)是 2013。
除此以外,4 位的有趣的數(shù)還有兩個:2031 和 2301。
請計算恰好有 n 位的有趣的數(shù)的個數(shù)。
由于答案可能非常大,只需要輸出答案除以 109+7 的余數(shù)。
輸入格式
輸入只有一行,包括恰好一個正整數(shù) n。
輸出格式
輸出只有一行,包括恰好 n 位的整數(shù)中有趣的數(shù)的個數(shù)除以 109+7 的余數(shù)。
數(shù)據(jù)范圍
4≤n≤1000
輸入樣例:
4
輸出樣例:
3
代碼如下:
#include <iostream> using namespace std; const int N = 1010; int c[N][N]; const int MOD = 1e9+7; typedef long long LL; int main() {int n;cin>>n;for (int i = 0;i<N;i++)for (int j = 0;j<=i;j++){if (!j) c[i][j] = 1;else c[i][j] = (c[i-1][j]+c[i-1][j-1])%MOD;}int res = 0;for (int k = 2;k<=n-2;k++){res = (res+(LL)c[n-1][k]*(k-1)%MOD*(n-k-1))%MOD;}cout<<res<<endl; } 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的AcWing 3195. 有趣的数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AcWing 730. 机器人跳跃问题
- 下一篇: AcWing 1230. K倍区间