亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

OJ 7219 復雜的整數劃分問題__動態規劃

2019-11-14 09:23:39
字體:
來源:轉載
供稿:網友

描述

將正整數n 表示成一系列正整數之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。 正整數n 的這種表示稱為正整數n 的劃分。

輸入

標準的輸入包含若干組測試數據。每組測試數據是一行輸入數據,包括兩個整數N 和 K。 (0 < N <= 50, 0 < K <= N)

輸出

對于每組測試數據,輸出以下三行數據: 第一行: N劃分成K個正整數之和的劃分數目 第二行: N劃分成若干個不同正整數之和的劃分數目 第三行: N劃分成若干個奇正整數之和的劃分數目

樣例輸入

5 2

樣例輸出

2 3 3

提示 第一行: 4+1, 3+2, 第二行: 5,4+1,3+2 第三行: 5,1+1+3, 1+1+1+1+1+1

分析

整數劃分問題這幾個變形確實很經典,需要一個個說明下: 設dp[n][m]表示數n劃分方案中,每個數 不大于m 的劃分數。

N劃分成若干個可相同正整數之和

劃分分兩種情況:

劃分中每個數都小于m:則劃分數為dp[n][m-1]。劃分中至少有一個數等于m:則從n中減去去m,然后從n-m中再劃分,則劃分數為dp[n-m][m]。

動態轉移方程:dp[n][m]=dp[n][m-1]+dp[n-m][m]。

N劃分成若干個不同正整數之和

劃分分兩種情況:

劃分中每個數都小于m:則劃分數為dp[n][m-1]。劃分中至少有一個數等于m:則從n中減去m,然后從n-m中再劃分,且再劃分的數中每個數要小于m, 則劃分數為dp[n-m][m-1]。

動態轉移方程:dp[n][m]=dp[n][m-1]+dp[n-m][m-1]。

N劃分成K個正整數之和

設dp[n][k]表示數n劃分成k個正整數之和時的劃分數。 劃分分兩種情況:

劃分中不包含1:則要求每個數都大于1,可以先拿出k個1分到每一份,之后在n-k中再劃分k份,即dp[n-k][k]。劃分中包含1:則從n中減去1,然后從n-1中再劃分k-1份, 則劃分數為dp[n-1][k-1]。

動態轉移方程:dp[n][k]=dp[n-k][k]+dp[n-1][k-1]。

N劃分成若干個奇正整數之和

設f[i][j]表示將數i分成j個正奇數,g[i][j]表示將數i分成j個正偶數。 首先如果先給j個劃分每個分個1,因為奇數加1即為偶數,所以可得: f[i-j][j] = g[i][j]。 劃分分兩種情況:

劃分中不包含1:則要求每個數都大于1,可以先拿出k個1分到每一份,剛可將問題轉換為”從i-j中劃分j個偶數”,即g[i-j][j]。劃分中包含1:則從n中減去1,然后從n-1中再劃分k-1份, 則劃分數為dp[n-1][k-1]。

動態轉移方程:f[i][j]=f[i-1][j-1]+g[i-j][j]。

實現

#include <iostream>#include <cstring>using namespace std;#define N 51int dp1[N][N]; //N劃分成K個正整數之和的劃分數目。int dp2[N][N]; //N劃分成若干個不同正整數之和的劃分數目。int dp3[N][N]; //N劃分成若干個可相同的正整數之和的劃分數目。int f[N][N]; //N劃分成K個奇正整數之和的劃分數目。int g[N][N]; //N劃分成K個偶正整數之和的劃分數目。void initDivideInt() { memset(dp1, 0, sizeof(dp1)); //dp[n][k]=dp[n-k][k]+dp[n-1][k-1] memset(dp2, 0, sizeof(dp2)); //dp[n][m]=dp[n][m-1]+dp[n-m][m-1] memset(dp3, 0, sizeof(dp3)); //dp[n][m]=dp[n][m-1]+dp[n-m][m] for (int i = 1; i < N; i++) { for (int j = 1; j < N; j++) { if (i < j) { dp1[i][j] = 0; dp2[i][j] = dp2[i][i]; dp3[i][j] = dp3[i][i]; } else if (i == j) { dp1[i][j] = 1; dp2[i][j] = dp2[i][j - 1] + 1; dp3[i][j] = dp3[i][j - 1] + 1; } else { dp1[i][j] = dp1[i - j][j] + dp1[i - 1][j - 1]; dp2[i][j] = dp2[i][j - 1] + dp2[i - j][j - 1]; dp3[i][j] = dp3[i][j - 1] + dp3[i - j][j]; } } }}//f[i][j]=f[i-1][j-1]+g[i-j][j]void initDivideOdd() { f[0][0] = 1; g[0][0] = 1; for (int i = 1; i < N; i++) { for (int j = 1; j <= i; j++) { g[i][j] = f[i - j][j]; f[i][j] = f[i - 1][j - 1] + g[i - j][j]; } }}int main() {// freopen("in.txt", "r", stdin); int n, k; initDivideInt(); initDivideOdd(); while (cin >> n >> k) { cout << dp1[n][k] << endl; cout << dp2[n][n] << endl; int sum = 0; for (int i = 0; i <= n; i++) { sum += f[n][i]; } cout << sum << endl; } return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
午夜精品久久久久久久久久久久久| 久久久91精品国产| 成人一区二区电影| 国产手机视频精品| 欧美壮男野外gaytube| 久久99视频精品| 91精品视频在线免费观看| 日韩精品免费在线观看| 国产精品入口日韩视频大尺度| 成人网在线免费观看| 一道本无吗dⅴd在线播放一区| 国产午夜精品免费一区二区三区| 久久精品国产电影| 日韩精品电影网| 国产精品男人的天堂| 亚洲日本aⅴ片在线观看香蕉| 国产精品999| 亚洲自拍在线观看| 欧美在线性爱视频| 国产精品高潮视频| 亚洲欧美在线一区二区| 亚洲资源在线看| 国产精品视频一| 欧美视频在线免费看| 九九精品在线观看| 国产精品九九久久久久久久| 国产精品户外野外| 国产欧美日韩视频| 成人在线中文字幕| 国产精品欧美久久久| 亚洲女成人图区| 国产精品一区二区3区| 久久亚洲电影天堂| 成人网欧美在线视频| 福利精品视频在线| 久久精品中文字幕免费mv| 中文字幕欧美视频在线| 成人写真视频福利网| 欧美黑人xxxx| 亚洲欧美综合精品久久成人| 亚洲精品97久久| xvideos成人免费中文版| 日本久久久久亚洲中字幕| 日本精品va在线观看| 欧美视频专区一二在线观看| 日韩在线高清视频| 久久亚洲精品成人| 欧美精品www| 国产在线视频欧美| 日韩精品在线视频| 色偷偷av一区二区三区| 欧美日韩中文字幕在线| 在线国产精品播放| 伊人久久综合97精品| 九九热视频这里只有精品| 国产日韩精品视频| 国产精品久久久久久久久久99| 亚洲天天在线日亚洲洲精| 色99之美女主播在线视频| 91影视免费在线观看| 国产综合香蕉五月婷在线| 97人人模人人爽人人喊中文字| 欧美成人午夜影院| 热久久免费视频精品| 日韩av在线免费播放| 日产精品久久久一区二区福利| 一道本无吗dⅴd在线播放一区| 欧美一区二区三区免费视| 亚洲香蕉成人av网站在线观看| 亚洲成av人影院在线观看| 欧美性受xxxx黑人猛交| 午夜精品久久久久久久白皮肤| 欧美中文在线观看| 欧美亚洲国产另类| 国产日韩欧美视频| 久久欧美在线电影| 欧美综合第一页| 人妖精品videosex性欧美| 中文一区二区视频| 538国产精品视频一区二区| 亚洲第一男人av| 欧美国产第二页| 91经典在线视频| 91精品国产91久久久久久最新| 日韩精品中文字幕有码专区| 青草热久免费精品视频| 亚洲第一中文字幕| 一区二区三区精品99久久| 久久视频在线看| 国产一区欧美二区三区| 国产精品爱啪在线线免费观看| 亚洲欧美中文日韩v在线观看| 国产精品久久久久久久久粉嫩av| 久久91亚洲精品中文字幕| 欧美大片欧美激情性色a∨久久| 国产精品久久久久久久久| 日韩免费在线播放| 国产精品一区二区三区久久久| 国产一区私人高清影院| 欧美性猛交xxxx偷拍洗澡| 欧美电影电视剧在线观看| 欧美野外wwwxxx| 亚洲欧洲日产国产网站| 亚洲女性裸体视频| 欧美日韩精品在线视频| 国产一区二区欧美日韩| 久久久久久国产三级电影| 欧美日韩一区二区三区| 操91在线视频| 在线观看不卡av| 富二代精品短视频| 午夜精品理论片| 精品久久久久久久久久久| 动漫精品一区二区| 成人免费观看49www在线观看| 日韩免费看的电影电视剧大全| 精品久久久久久国产91| 久久久爽爽爽美女图片| 伊人久久久久久久久久久| 国产视频精品va久久久久久| 97在线看福利| 久久久久久久网站| 91免费人成网站在线观看18| 日韩电影免费观看在线| 精品国产乱码久久久久久虫虫漫画| 国产网站欧美日韩免费精品在线观看| 国产精品第3页| 欧美人交a欧美精品| 成人av电影天堂| 日韩性xxxx爱| 亚洲国产精品99久久| 国产丝袜一区视频在线观看| 日本精品一区二区三区在线| 亚洲成人激情视频| 亚洲高清色综合| 精品日韩美女的视频高清| 日本精品va在线观看| 青青草99啪国产免费| 日韩精品在线电影| 精品视频在线播放色网色视频| 黑人狂躁日本妞一区二区三区| 精品露脸国产偷人在视频| 在线色欧美三级视频| 久久成人这里只有精品| 2025国产精品视频| 国产精品69av| 97色在线观看免费视频| 国产福利精品视频| 亚洲国产精品久久久| 精品久久久香蕉免费精品视频| 色综合久久88色综合天天看泰| 日韩av电影院| 亚洲成人黄色在线| 91在线观看免费高清| 91高潮在线观看| 欧美裸体xxxx| 欧洲成人免费aa| 青青a在线精品免费观看| 国产精品人人做人人爽| 91网在线免费观看| 91高清视频免费| 日韩欧美精品免费在线| 久久在精品线影院精品国产| 亚洲美女av在线|