小易非常喜歡擁有以下性質的數列:
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,...