網易2018校招筆試 小易喜歡的數列 C

2021-08-07 12:02:45 字數 1154 閱讀 9343

小易非常喜歡擁有以下性質的數列:

1、數列的長度為n

2、數列中的每個數都在1到k之間(包括1和k)

3、對於位置相鄰的兩個數a和b(a在b前),都滿足(a <= b)或(a mod b != 0)(滿足其一即可)

例如,當n = 4, k = 7

那麼,它的長度是4,所有數字也在1到7範圍內,並且滿足第三條性質,所以小易是喜歡這個數列的

但是小易不喜歡這個數列。小易給出n和k,希望你能幫他求出有多少個是他會喜歡的數列。

輸入描述:

輸入包括兩個整數n和k(1 ≤ n ≤ 10, 1 ≤ k ≤ 10^5)

輸出描述:

輸出乙個整數,即滿足要求的數列個數,因為答案可能很大,輸出對1,000,000,007取模的結果。

輸入例子1:

2 2輸出例子1:

3

#include 

const int

mod = 1e9+7;

const int maxn = 1e5+5;

using namespace std;

int main()

int sum2;

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

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

int ans =0;

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

cout << ans << endl;

return

0;}

解析:

這道題我們採用動態規劃解決,我們定義乙個陣列,dp[i][j]表示陣列長度為i,末尾元素為j的所有喜歡的數列。

假設sum = dp[i-1][1]+dp[i-1][2]+……+dp[i-1][k],表示長度為i-1的所有小易喜歡的數列

invalid = dp[i-1][2*j]+dp[i-1][3*j]+……+dp[i-1][m*j](m*j<=k,(m+1)*j>k) 表示sum中加上j結尾的小易不喜歡的數列

那麼,dp[i][j] = sum - invalid; 長度為i,以j結尾的小易喜歡數列

最後,dp[n][m]求和,1<=m

<=k;

2018網易校招內推 小易喜歡的數列

小易非常喜歡擁有以下性質的數列 1 數列的長度為n 2 數列中的每個數都在1到k之間 包括1和k 3 對於位置相鄰的兩個數a和b a在b前 都滿足 a b 或 a mod b 0 滿足其一即可 例如,當n 4,k 7 那麼,它的長度是4,所有數字也在1到7範圍內,並且滿足第三條性質,所以小易是喜歡這...

2018網易校招題

1 為了得到乙個數的 相反數 我們將這個數的數字順序顛倒然後再加上原先的數得到 相反數 例如,為了得到1324的 相反數 首先我們將該數的數字順序顛倒。我們得到5231,之後再加上原先的數,我們得到5231 1325 6556,如果顛倒之後的數字有字首 字首零將會被忽略。例如n 100。顛倒之後是1...

2018網易校招前端筆試考後總結

當年研究生選擇設計專業,是為提高審美 感知設計,然後更好的去做技術。讀研的一年半時間,除了課程之外,小生一直在做一些前端專案,想著這次春招應該問題不大。筆試完之後才發現並不是這樣 由於平常做的專案太固定導致知識點範圍狹隘,遺忘 欠缺的知識點太多了,藍瘦香菇。單選題知識點 1 html css js,...