社区讨论

求调

P1025[NOIP 2001 提高组] 数的划分参与者 2已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@lo18brco
此快照首次捕获于
2023/10/22 16:51
2 年前
此快照最后确认于
2023/11/02 16:40
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
long long n,k,f[10000][10000];//f[i][j]:将i分成最大不超过j的方案数 
int main(){ 
	cin>>n>>k;
	if(k==1){
		cout<<1;
		return 0;
	}
	if(k==2){
		cout<<n/2;
		return 0;
	}
	for(long long i=2;i<=n+1;i++)
		for(long long j=2;j<=k+1;j++){
			if(i==2&&j==2) f[i][j]=1;
			else if(i==j) f[i][j]=1+f[i][j-1];
			else if(i<j) f[i][j]=f[i][j-1];
			else f[i][j]=f[i-j][j]+f[i][j-1];
		}
	cout<<f[n][k]-5<<endl;
	return 0;
}

回复

7 条回复,欢迎继续交流。

正在加载回复...