NYOJ166 小珂的數學題 數字dp

2021-07-03 19:49:47 字數 552 閱讀 4266

分析:

這道題的做法應該很多, 我看到有人用組合數學做的(真是大牛啊); 我以開始也想用組合數學做,但是找了乙個小時也沒弄出來。 然而發現用數字dp(記憶化搜尋)可以做的。

dp【d】【num】表示:第d位上不大於num的種類的個數

記憶化搜尋是傳三個引數 d, num, f(標記高位是否為滿, 數字dp的思想所要求的);

對於數字dp不懂的可以先看看網上講的, 有很多資料

#include#include#includeusing namespace std;

const int maxn = 30;

const int n = 6;

int dp[n][maxn];

int digit[n], pos = 0;

char s[n];

int dp(int d, int num, int f)

int main()

if(flag)

puts("0");

else

}return 0;

}

NYOJ 453 小珂的煩惱

時間限制 1000 ms 記憶體限制 65535 kb難度 2 描述 小珂遇到了乙個麻煩的問題,有這樣的n對數 1,2 3,5 4,7 6,10 第i對的差值為i,第n對數的第乙個數為沒在前n 1對中出現過的數中最小的,現在要找第n對這樣的數,你能幫幫他嗎?輸入第一行只有乙個整數m m 10000 ...

nyoj144 小珂的苦惱

時間限制 1000 ms 記憶體限制 10000 kb 難度 2描述 小珂是一名初中生,她現在很苦惱,因為老師布置了乙個讓她苦惱的作業,你能不能幫助她呢?題目資訊如下。已知二元一次方程 a x b y n,判斷這個二元一次方程有沒有整數解,x,y為未知數,其中a,b,n都為整數且不等於零,同時滿足0...

小珂的遊戲

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 假設有2k個人圍著乙個圓桌坐著,前k個是好人,後k個是壞人 現在開始,每m個人踢掉乙個,比如有6個人,m 5,那麼,被踢掉的人依次是5,4,6,2,3,1。現在要求,在踢掉第乙個好人前,必需把所有的壞人踢掉,問,給定乙個k,求滿...