1029 巧分整數

2022-06-05 12:36:13 字數 673 閱讀 4534

將n分成k個數,每個數不能為0,分法不能重複(不考慮順序)

神奇的dp!

dp[i] [j] = dp[i - j] [j - 1] + dp[i - j] [j] (dp[i] [j]指將i分成j份)

因為每個數不能為0,所以對於數i,先減去j,得到能支配的數,在將這些數進行分配。所以dp[i] [j] = dp[i - j] [1] + dp[i - j] [2] + …… + dp[i - j] [j]。都是這樣不太好處理,所以進行一次簡化。

dp[i - 1] [j - 1] = d p[i - 1 - (j - 1)] [1] + ……dp[i - 1 - (j - 1)] [j - 1] = dp[i - j] [1] + dp[i - j] [2] +……dp[i - j] [j - 1] = dp[i] [j] - dp[i - j] [j]

所以dp[i] [j] = dp[i - 1] [j - 1] + dp[i - j] [j].

#includeusing  namespace std;

#define max 1000+5

typedef long long ll ;

int tr[max][10], n, q;

int main()

}cout

}

011巧分蘋果

最近兩月較忙,從今日起,繼續更新200例,努力學習,加油!一家農戶以果園為生。一天,父親推出一車蘋果,共2520個,準備分給他的6個兒子。父親先按事先寫在一張紙上的數字把這堆蘋果分完,每個人分到的蘋果的個數都不相同。然後他說 老大,把你分到的蘋果分1 8給老二,老二拿到後,連同原來的蘋果分1 7給老...

1029 舊鍵盤 20 (20 分)

1029 舊鍵盤 20 20 分 舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字 以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。輸入格式 輸入在2行中分別給出應該輸入的文字 以及實際被輸入的文字。每段文字是不超過80個字元的串,由字母a z 包括大 小...

1029 舊鍵盤 20 (20 分)

舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字 以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。輸入格式 輸入在2行中分別給出應該輸入的文字 以及實際被輸入的文字。每段文字是不超過80個字元的串,由字母a z 包括大 小寫 數字0 9 以及下劃線 代表空...