將n分為若干個不同整數的和,有多少種不同的劃分方式,例如:n = 6, ,共4種。由於資料較大,輸出mod 10^9 + 7的結果即可。
input 輸入1個數n(1 <= n <= 50000)。 output 輸出劃分的數量mod 10^9 + 7。 sample input
6sample output
4
#include
#include
#include
#include
#include
#include
using namespace std;
int dp[50005][351];
int main(){
int n;
while(scanf("%d",&n)!=eof){
memset(dp,0,sizeof(dp));
dp[1][1]=1;
for(int i=2;i<=n;i++){
for(int j=1;j
dp[i][j]是把i劃分成j個數。
關於整數劃分
動歸 編輯距離
設a和b是兩個字串。我們要用最少的字元操作次數,將字串a轉換為字串b。這裡所說的字元操作共有三種 1 刪除乙個字元 2 插入乙個字元 3 將乙個字元改為另乙個字元 皆為小寫字母!輸入格式 第一行為字串a 第二行為字串b 字串a和b的長度均小於2000。輸出格式 只有乙個正整數,為最少字元操作次數。輸...
動歸 道路遊戲
題目描述 小新正在玩乙個簡單的電腦遊戲。遊戲中有一條環形馬路,馬路上有n 個機械人工廠,兩個相鄰機械人工廠之間由一小段馬路連線。小新以某個機械人工廠為起點,按順時針順序依次將這n 個機械人工廠編號為1 n,因為馬路是環形的,所以第n 個機械人工廠和第1 個機械人工廠是由一段馬路連線在一起的。小新將連...
動歸 多人揹包
求01揹包前k優解的價值和 輸入格式 第一行三個數k v n 接下來每行兩個數,表示體積和價值 輸出格式 前k優解的價值和 題解 這道題目是在01揹包的基礎上求出前k個最優解。dp i j 揹包容量為i,第j優解的值。由於任意兩個揹包不能完全相同,所以只初始化dp 0 1 0 因為要求必須恰好裝滿,...