分析:
這道題的做法應該很多, 我看到有人用組合數學做的(真是大牛啊); 我以開始也想用組合數學做,但是找了乙個小時也沒弄出來。 然而發現用數字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,求滿...