牛客 牛牛與陣列

2022-06-09 06:09:06 字數 1522 閱讀 7025

牛牛喜歡這樣的陣列:

1:長度為n

2:每乙個數都在1到k之間

3:對於任意連續的兩個數a,b,a<=b 與(a % b != 0) 兩個條件至少成立乙個

請問一共有多少滿足條件的陣列,對1e9+7取模

輸入兩個整數n,k

1 ≤ n ≤ 10

1 ≤ k ≤ 100000

輸出乙個整數
示例1

複製

2 2

複製

3

示例2複製

9 1

複製

1

示例3複製

3 3

複製

15

示例4複製

2 1234

複製

1515011

#pragma gcc optimize(2)#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long

ll;//

c(n,k)*c(m,k)*k!

inline int

read()

while(ch>='

0'&&ch<='9')

return x*f;

}const

int maxn=1e5+10

;const

int mod=1e9+7

;int dp[20

][maxn];

intmain()

for(int i=2;i<=n;i++)

for(int j=1;j<=m;j++)

dp[i][j]+=(sum-sum1)%mod;}}

ll ans=0

;

for(int j=1;j<=m;j++)

printf(

"%lld

",ans);

} /*

題意:求乙個長度為n的陣列,滿足用1-k的數組成前乙個小於等於後乙個或後乙個不是前乙個的倍數的條件

有多少種,模1e9+7

思路:當前乙個數小於等於後乙個數時,即使後乙個數是前乙個數的倍數也是可以成立的

(兩個條件只需滿足乙個),但只有當前乙個數大於後乙個數且前乙個數是後乙個數的倍數時,

此方案才不成立,

注意到不成立的方案數條件更少,所以用總方案數減去不成立的方案數求解時更容易,

故設dp[i][j]為當前長度為i的陣列末尾是j的方案數,當陣列長度為1時,k種數的方案數都為1種,

當長度i大於等於2時,若要在末尾加入數j,則用i-1長度的陣列從1到k的方案數之和

減去i-1時大於j的j的倍數的方案數即使長度為i時末尾加入j的方案數,

最後計算長度為n的陣列從1到k的方案數之和即為答案,注意計算時要模1e9+7

*/

牛客 牛牛的數列

鏈結 牛牛的數列 時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 牛牛現在有乙個n個數組成的數列,牛牛現在想取乙個連續的子串行,並且這個子串行還必須得滿足 最多隻改變乙個數,就可以使得這個連續的子串行是乙個嚴格上公升...

牛客網 牛牛找工作

時間限制 2秒 空間限制 65536k 為了找到自己滿意的工作,牛牛收集了每種工作的難度和報酬。牛牛選工作的標準是在難度不超過自身能力值的情況下,牛牛選擇報酬最高的工作。在牛牛選定了自己的工作後,牛牛的小夥伴們來找牛牛幫忙選工作,牛牛依然使用自己的標 准來幫助小夥伴們。牛牛的小夥伴太多了,於是他只好...

牛客網 牛牛的數列

題目描述 牛牛現在有乙個n個數組成的數列,牛牛現在想取乙個連續的子串行,並且這個子串行還必須得滿足 最多隻改變乙個數,就可以使得這個連續的子串行是乙個嚴格上公升的子串行,牛牛想知道這個連續子串行最長的長度是多少。一開始看到這個題,總是被繞進 改變乙個數 中,就想說是不是遍歷陣列,然後每個數都嘗試改變...