http://acm.nyist.net/JudgeOnline/problem.php?pid=90

原创 2012年03月30日 09:52:13

整数划分

时间限制: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
构造f(n,m)表示要划分的数为n,最大加数为m
1>当n和m任意一个小于1时结果肯定都为0
2>当n和m任意一个为1时结果肯定为1,因为n为1时只有一个1,m为1时全部为1即可,,,,
3.>当m大于n时要修改最大加数
4>当m等于n时可以转化为最大加数为n-1加上只有自己这一种情况。。。
5>当n大于m时可以转化为已经确定最大加数为m和最大加数为m-1.。
AC代码
#include<stdio.h>
#include<string.h>
int f(int x,int y)
{
	if(x<1||y<1) return 0;
	if(x==1||y==1) return 1;
	if(x<y) return f(x,x);
	if(x==y) return f(x,y-1)+1;
	return f(x,y-1)+f(x-y,y);
}
	
int main()
{
	int T;
	scanf("%d",&T);
	while(T--)
	{
		int n;
		scanf("%d",&n);
		printf("%d\n",f(n,n));
	}return 0;
}



http://acm.nyist.net/JudgeOnline/problem.php?pid=27

搜索入门题。。。 #include #include #include using namespace std; int map[105][105]; void dfs(int x,int y) {...
  • smallacmer
  • smallacmer
  • 2012年03月29日 19:22
  • 467

http://acm.nyist.net/JudgeOnline/problem.php?pid=118&&次小生成树

昨天做的次小生成树的用的是标记法,,,今天用的的是,,,,添边,删边法,, 代码: #include #include #include #define N 501 #define M 99999...
  • smallacmer
  • smallacmer
  • 2011年11月06日 10:35
  • 617

http://acm.nyist.net/JudgeOnline/problem.php?pid=517

因为任意一个整数n可以表示为n=p1^a1*p2^a2.......所以只需要取每一个素因子数最多的那个ai相乘即可。。。。 最小公倍数 时间限制:1000 ms | 内存限制:655...
  • smallacmer
  • smallacmer
  • 2012年04月06日 11:26
  • 424

http://acm.nyist.net/JudgeOnline/problem.php?pid=420

p次方求和 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 一个很简单的问题,求1^p+2^p+3^p+……+n^p的和。 输入 第一行单独一个数字t表示测试数据...
  • smallacmer
  • smallacmer
  • 2012年03月22日 09:51
  • 371

http://acm.nyist.net/JudgeOnline/problem.php?pid=510

题意中文不解释。。 思路:以每个物品当做图中的顶点,以优惠的价格为边权,建图,这里让求需要的最少金币,故可以转化为最短路问题,这里引入一个超级源点0,可以看做是每个物品都可以和自己交换,但没有优惠价...
  • smallacmer
  • smallacmer
  • 2012年05月03日 16:38
  • 736

最长公共子序列&&http://acm.nyist.net/JudgeOnline/problem.php?pid=36

这是一道动态规划入门题,,,赋予dp[i][j]为s串从0-i与s1串从0-j中最大的匹配长度。。。 AC代码: #include #include #include #define N 1001...
  • smallacmer
  • smallacmer
  • 2012年01月08日 10:48
  • 569

http://acm.nyist.net/JudgeOnline/problem.php?pid=129

#include #include #define N 10005 using namespace std; int parent[N];int r[N]; void make() { for(in...
  • smallacmer
  • smallacmer
  • 2011年11月03日 11:26
  • 584

http://acm.nyist.net/JudgeOnline/problem.php?pid=309

一道省赛题。。主要是模拟一下过程,其他的就是实现代码的能力了。。。 #include #include #include #include #include #define N 1001 using...
  • smallacmer
  • smallacmer
  • 2012年03月16日 13:59
  • 350

http://acm.nyist.net/JudgeOnline/problem.php?pid=32&&DFS

简单的DFS应用,求排列组合的种类数。。这里需要注意的是下一层都比当前层数小。。。 #include #include using namespace std; int a[10]; bool vi...
  • smallacmer
  • smallacmer
  • 2012年03月21日 09:40
  • 343

http://acm.nyist.net/JudgeOnline/problem.php?pid=119

一开始想的是写两个查询一个找最大值,一个找最小值,没想到却tle,,最后写了一个查询,,却莫名其妙的过了,杯具的线段树求法~~~~ #include #include #include #inc...
  • smallacmer
  • smallacmer
  • 2012年03月29日 09:23
  • 417
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:http://acm.nyist.net/JudgeOnline/problem.php?pid=90
举报原因:
原因补充:

(最多只允许输入30个字)