欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

洛谷 P1025 [NOIP2001 提高組] 數(shù)的劃分

連接:https://www.luogu.com.cn/problem/P1025

?

?

題目描述

將整數(shù)nn分成kk份,且每份不能為空,任意兩個方案不相同(不考慮順序)。

例如:n=7n=7,k=3k=3,下面三種分法被認為是相同的。

1,1,51,1,5;
1,5,11,5,1;
5,1,15,1,1.

問有多少種不同的分法。

輸入格式

n,kn,k?(6<n \le 2006<n≤200,2 \le k \le 62≤k≤6)

輸出格式

11個整數(shù),即不同的分法。

輸入輸出樣例

輸入 #1復(fù)制

7 3

輸出 #1復(fù)制

4

說明/提示

四種分法為:
1,1,5
1,2,4
1,3,3
2,2,3

【題目來源】

NOIP 2001 提高組第二題

?

觀看了大佬的博客寫的題解,頗有感謝,借用一下例子。

?

一開始真的對這道題沒思路,也沒有什么想法,然而看了這位大佬的例子,恍然大悟。

?

先寫出狀態(tài)轉(zhuǎn)移方程:dp[i][j]=dp[i-j][j]+dp[i-1][j-1];

?

i表示整數(shù)為i,j表示分成j份。那么對于把i這個數(shù)分成j份的分發(fā),有兩種情況。

要么就是已經(jīng)將i-1分成了j-1份,只要再分多一個1就可以了。即dp[i-1][j-1]

要么就是在把i-j已經(jīng)分成了j份,只要每一份都+1,就成了把i分成j份的情況了。即dp[i-j][j]

?

然后就是考慮初始化的問題了。

我們考慮,哪些情況可以是已經(jīng)知道方案數(shù)的,最明顯的就是方案數(shù)為1的情況。

方案數(shù)為1的情況有哪些呢?

把i分成0份,分成1份,或者分成k份時,都是只有1種情況。

所以將這幾種狀態(tài)初始化為1即可。

代碼:

#include<iostream>
using namespace std;
int n,k;
long long dp[205][10];
int main()
{
	ios::sync_with_stdio(false),cin.tie(0);
	cin>>n>>k;
	for(int i=1;i<=n;i++)
	  dp[i][1]=dp[i][0]=1;
	for(int i=2;i<=n;i++)
	  for(int j=2;j<=k;j++)
	  {
			if(i>j)
			  dp[i][j]=dp[i-j][j]+dp[i-1][j-1];
			else
			  dp[i][j]=dp[i-1][j-1];
	  }
	cout<<dp[n][k];  
	
	return 0;
}

?

全部評論

相關(guān)推薦

ResourceUtilization:算法很難了,現(xiàn)在都需要相關(guān)論文還有對應(yīng)的實習(xí),可以先試試中廠
點贊 評論 收藏
分享
評論
點贊
收藏
分享

創(chuàng)作者周榜

更多
??途W(wǎng)
??推髽I(yè)服務(wù)