簡單的劃分數問題
將整數n分成k份,且每份不能為空,任意兩份不能相同(不考慮順序)。 例如:n=7,k=3,下面三種分法被認為是相同的。 1,1,5; 1,5,1; 5,1,1; 問有多少種不同的分法。
思路:
動態規劃:
dp[i][j]=dp[i-j][j]+dp[i-1][j-1];
dp [ i-j ] [ j ]:每一份至少有一個。
dp[i-1][j-1]:有一份是1個。
#include<iostream> #include<cstdio> #include<cstring> typedef long long ll; /*好久沒打碼,生了*/ ll dp[505][25]; int main () { int n,k; while(~scanf("%d%d",&n,&k)&&(n||k)) { memset(dp,0,sizeof(dp)); dp[0][0]=1; for(int i=1;i<=n;i++) for(int j=1;j<=k;j++) if(i>=j) dp[i][j]=dp[i-j][j]+dp[i-1][j-1]; printf("%lld\n",dp[n][k]); } return 0; }
相關推薦
有關計數問題的DP 劃分數
sin art 定義 size popu strong article statistic -m 有n個無差別的物品,將它們劃分成不超過m組。求出劃分方法數模M的余
[HEOI2014]平衡(整數劃分數)
下課了,露露、花花和萱萱在課桌上用正三稜柱教具和尺子擺起了一個“蹺蹺板”。 這個“蹺蹺板”的結構是這樣的:底部是一個側面平行於地平面的正三稜柱教具,上面 擺著一個尺子,尺子上擺著若干個相同的橡皮。尺子有 2n + 1 條等距的刻度線,第 n + 1 條 刻度線恰好在尺子的中心,且與正三稜柱的不在課桌上的稜完
劃分數
劃分數 挑戰上的題 *************************************************************************************** 注意是不超過 1、定義dp[i][j]=j的i的劃分總數 j的i劃分
整數劃分-劃分數(DP動態規劃)
給你一個正整數n,讓你計算出n的m劃分有幾種方法。思路:定義dp[i][j]為i的j劃分,即將i劃分為j個數字之和的方案數。1:當j<=i時,此時,劃分個數不超過i,此時是正常的劃分。 劃分的結果一定只有兩種型別:一種是j個數字,都大於0。另一種是有0,即不夠劃
簡單的分數
https://ac.nowcoder.com/acm/contest/322/L 題解:很簡單吧??? /* *@Author: STZG *@Language: C++ */ #include <bits/stdc++.h> #include<iostream&
nyoj 90 整數劃分【dp劃分數】
整數劃分 時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述將正整數n表示成一系列正整數之和:n=n1+n2+…+nk, 其中n1≥n2≥…≥nk≥1,k≥1。 正整數n的這種表示稱為正整數n的劃分。求正整數n的不 同劃分個數。
牛客網 - 簡單的分數(模擬)
題目連結:https://ac.nowcoder.com/acm/contest/322/L 時間限制:C/C++ 1秒,其他語言2秒 空間限制:C/C++ 32768K,其他語言65536K 64bit IO Format: %lld 題目描述 John最近對分數很感興趣,在研究分數的
西南民族大學第十屆校賽(同步賽)(L題——簡單的分數)
題目描述 John最近對分數很感興趣,在研究分數的加減運算。現在要求計算兩個分數的運算。 輸入描述: 輸入一個正整數T,表示有T組資料 每組資料包括5個整數op,a,b,c,d op為1表示a/b + c/d;op為0表示為a/b – c/d 其中1 <=
計算整數的劃分數
問題描述: 問題描述 :將一正整數劃分成一系列的正整數之和。 N=n1+n2+……+nk(n1>=n2>=n3….>=nk) 被稱為正整數n的一個劃分,一個正整數存在著不同的劃分。例如6 6=6 6=5+1 6=4+2 6=4+1
題目 10 劃分數
#include<stdio.h> int sum=0,n; int p(int a,int b) { if(a==0) sum++; int i; if(a>0) { for(i=n; i>=1; i--) { if(a>=i&&b<=i) { p(a-
NYOJ 571 —— 各種劃分數
時間限制:1000 ms | 記憶體限制:65535 KB 描述 整數劃分是一個經典的問題。請寫一個程式,完成以下要求。 輸入每組輸入是兩個整數n和k。(1 <= n <= 50,
NYOJ571-整數劃分(三) | 劃分數+DP
描述 整數劃分是一個經典的問題。請寫一個程式,完成以下要求。 輸入 多組輸入資料。 每組輸入是兩個整數n和k。(1 <= n <= 50, 1 <= k <=
迴文串最少劃分數
這個是正向分析字串,覺得比較好理解. 這個問題以後還要補充…… #pragma warning(disable:4996) #include <iostream> #include <algorithm> #inclu
[學習筆記]整數劃分數
sum 分享 src 完全 n) 前綴 完全背包 整數 -i 定義 P(i)把i劃分成若幹個整數的和的方案數。方案數不同當且僅當所用整數排序後不對應相同(存在某個整數用的次數不同) 求法 都是求前n項的每一項 完全背包 O(n^2) 分塊背包 根據物品大小分塊 小於根號n的
hiho 1515 : 分數調查 簡單bfs
內存 數據 開始 amp alt () 消息 splay pri 時間限制:10000ms 單點時限:1000ms 內存限制:256MB 描述 小Hi的學校總共有N名學生,編號1-N。學校剛剛進行了一場全校的古詩文水平測驗。 學校沒有公布測驗的成績,所以小Hi
所有分數求解簡單問題!!!tiy
com 現在 有時 log 問題 class 風景 裏的 女孩 愛上一個人和忘記一個人到底誰快一點呢?有時候不知不覺就愛上了一個人,有時候一個人怎麽都忘不掉,有時候因為愛上了一個人很快就忘掉了另一個人,有時候因為忘不掉一個人而不敢愛上另一個人,敢愛比敢忘要容易許多,但有時我
氣泡排序的簡單問題(給名字分數 按總成績輸出最好的)
#include<iostream> #include<cstdio> #include<cstring> #include<string> using namespace std; struct xs{ st
簡單列舉--最大乘積、分數拆分
題意: 輸入n個元素組成的序列S,找出一個乘積最大的連續子序列。如果這個最大的乘積不是正數,輸出0(表示無解)。1<=n<=18,-10<=Si<=10。每一個案例之間用空白行分隔,案例輸出要求輸出"Case #M: The ma
<java>枚舉的簡單介紹
pic spi str spa 枚舉類 lee string line 舉例 1.枚舉,enum關鍵字,相當於public final static. 2.舉例: 首先定義了一個名為spiciness的枚舉類型。 public enum Spiciness {
簡單的python判斷基偶數練習
一個 pytho 程序 color ont style 奇數 log code #!/usr/bin/env python# Author:William Huangnum = int(input(‘please input your number:‘)) # 用int(