NYOJ 90整數劃分
整數劃分
時間限制:3000 ms | 記憶體限制:65535 KB 難度:3- 描述
- 將正整數n表示成一系列正整數之和:n=n1+n2+…+nk,
其中n1≥n2≥…≥nk≥1,k≥1。
正整數n的這種表示稱為正整數n的劃分。求正整數n的不
同劃分個數。
例如正整數6有如下11種不同的劃分:
6;
5+1;
4+2,4+1+1;
3+3,3+2+1,3+1+1+1;
2+2+2,2+2+1+1,2+1+1+1+1;
1+1+1+1+1+1。
- 輸入
- 第一行是測試資料的數目M(1<=M<=10)。以下每行均包含一個整數n(1<=n<=10)。
- 輸出
- 輸出每組測試資料有多少種分法。
- 樣例輸入
-
1 6
- 樣例輸出
-
11
- 來源
- 上傳者
這是個典型DP揹包 (本人dp才學 只會套模板 這裡就不亂賣弄了)
#include<stdio.h> #include<string.h> int main() { int t,n,i,j; scanf("%d",&t); while(t--) { scanf("%d",&n); int dp[11]; memset(dp,0,sizeof(dp)); dp[0]=1; for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(i<=j) dp[j]=dp[j]+dp[j-i]; printf("%d\n",dp[n]); } return 0; }
相關推薦
NYOJ 90 整數劃分(遞推||dp)
整數劃分 時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述將正整數n表示成一系列正整數之和:n=n1+n2+…+nk, 其中n1≥n2≥…≥nk≥1,k≥1。
nyoj 90 整數劃分【dp劃分數】
整數劃分 時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述將正整數n表示成一系列正整數之和:n=n1+n2+…+nk, 其中n1≥n2≥…≥nk≥1,k≥1。 正整數n的這種表示稱為正整數n的劃分。求正整數n的不 同劃分個數。
nyoj 90 整數劃分(一) (dp||遞迴)
將正整數 n 表示成一系列正整數之和, n=n1+n2+…+nk, 其中 n1>=n2>=…>=nk>=1 , k>=1 。 正整數 n 的這種表示稱為正整數 n 的劃分。正整數 n 的不同的劃分個數稱為正整數 n 的劃分數,記作 p(n) 。 例如正整數 6 有如下 11
NYOJ 90整數劃分
整數劃分 時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述將正整數n表示成一系列正整數之和:n=n1+n2+…+nk, 其中n1≥n2≥…≥nk≥1,k≥1。 正整數n的這種表示稱為正整數n的劃分。求正整數n的不 同劃分個數。
NYOJ-90整數劃分
整數劃分 時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述 將正整數n表示成一系列正整數之和:n=n1+n2+…+nk, 其中n1≥n2≥…≥nk≥1,k≥1。 正整數n的這種表示稱為正整數n的劃分。求正整數n的不 同劃分個數。
NYOJ 746 整數劃分(四)區間DP
/* 區間dp,設dp[i][j] 表示在區間[0, i]之中,插入j個乘號可以得到的最大數 設a[i][j]為區間[i,j]所形成的數 所以 dp[i][j] = max(dp[k][j-1] * a[k + 1][i]) 注意數的範圍,用int不夠 */ #include <cmath>
【整數劃分dp(總結)】nyoj 571 整數劃分
整數劃分(一)(二)(三)(四)(五)後接分析 /* 整數劃分 (一)將n劃分成若干不同整數之和的劃分數 (二)將n劃分成若干正整數之和的劃分數 (三)將n劃分成k個正整數之和的劃分數 (四)將n劃分成最大數不超過k的劃分數 (五)
整數劃分 nyoj 90
整數劃分 時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述將正整數n表示成一系列正整數之和:n=n1+n2+…+nk, 其中n1≥n2≥…≥nk≥1,k≥1
nyoj 整數劃分 90 (母函式)
整數劃分 時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述 將正整數n表示成一系列正整數之和:n=n1+n2+…+nk, 其中n1≥n2≥…≥nk≥1,k≥1。 正整數n的這種表示稱為正整數n的劃分。求正整數n的不
nyoj 整數劃分(一)(二)
先來談談寫這兩道題的感受,整數劃分(一)剛開始做這道題,dp和遞迴都不會寫,是用深搜寫的,不過用深搜寫 整數劃分(二)就不行了,鐵定超時。 昨晚和今晚終於把這兩道題的遞迴和dp全看懂了(看別人部
NYOJ 整數劃分
整數劃分 時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述 將正整數n表示成一系列正整數之和:n=n1+n2+…+nk, 其中n1≥n2≥…≥nk≥1,k≥1。 正整數n的這種表示稱為正整數n的劃分。求正整數n的不 同劃分個數。 例如正整數
NYOJ 整數劃分(四) (區間dp)
題意:給出兩個整數 n , m ,要求在 n 中加入m - 1 個乘號,將n分成m段,求出這m段的最大乘積思路:區間dp,我們需要先預處理出第i位到第j位可以湊成的數sum[i][j],之後dp[i][j]表示你在第i個數字添加了j個乘號時的最大值,那麼dp[i][j] =m
(dp)openjudge 復雜的整數劃分問題
con fin can == names 劃分數 algorithm 系列 問題 將正整數n 表示成一系列正整數之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。正整數n 的這種表示稱為正整數n 的劃分。
整數劃分問題(二)
pro col void ++ cal -c 一行 測試 不同的 總時間限制:200ms內存限制:65536kB描述 將正整數n 表示成一系列正整數之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。正整數n
整數劃分問題
區別 不同 style back blog 表示 n-1 由於 思路 1.將n個不同的數字組成的集合劃分成若幹個元素和不大於m的集合: 1).若是劃分多個可重復整數: dp[n][m]= dp[n][m-1]+ dp[n-m][m] dp[n][m]表示
51nod 1201 整數劃分 dp
bit eps 不同的 color quest stream 空間 output lac 1201 整數劃分 基準時間限制:1 秒 空間限制:131072 KB 收藏 關註 將N分為若幹個不同整數的和,有多少種不同的劃分方式,例如:
動態規劃_百煉 4117 簡單的整數劃分問題
出口 sta pre color 劃分 stack 大於 iostream 規劃 1 #define _CRT_SECURE_NO_WARNINGS 2 #include <stdio.h> 3 #include <math.h> 4
Bzoj-1263[SCOI2006]整數劃分
num cst -a bsp post str class span names 要知道:用n個a和m個b可以組合出$(a*b-a-b)$以上的所有數(Noip2017 Day1T1) 以下給出證明(From onion_cyc): 所以我們可以知道2和3能夠組合成
poj 1664 整數劃分
http image ace stream 圖片 分享 count 技術分享 nbsp 根據題意,將n個蘋果放入m個盤子中,盤子樣式相同,求所有方法。 這是一個典型的整數劃分問題 1.n == 1 只有一個蘋果,由於盤子樣式相同,那麽放在哪個盤子中都是一種放法,fu
牛客網練習賽18 A 【數論/整數劃分得到乘積最大/快速乘】
vector owb gcd algorithm CI -- ostream 最大的 sig 鏈接:https://www.nowcoder.com/acm/contest/110/A 來源:牛客網 題目描述 這題要你回答T個詢問,給你一個正整數S,若有若幹個正整數的和為S