http://codevs.cn/problem/1039/

题目描述 Description
将整数n分成k份,且每份不能为空,任意两种划分方案不能相同(不考虑顺序)。
例如:n=7,k=3,下面三种划分方案被认为是相同的。
1 1 5

1 5 1

5 1 1
问有多少种不同的分法。

输入描述 Input Description
输入:n,k (6<n<=200,2<=k<=6)

输出描述 Output Description

输出:一个整数,即不同的分法。

样例输入 Sample Input
7 3

样例输出 Sample Output
4

数据范围及提示 Data Size & Hint
{四种分法为:1,1,5;1,2,4;1,3,3;2,2,3;}

芒果君:学DP也有一阵子了,然而这个简单的划分型DP还是不太会写,主要是没有思路OTZ……这道题学递归的时候写过,然而用DP的话就很茫然,看完题解,我的理解是酱紫的,首先这个状态转移方程分为两部分,第一部分:F[i-j][j],就是现在k个位置上铺一层"1",然后再把i-j个数分成j份的方案“搭”在上面,这样就涵盖了所有“每一位都不为1”的方案,剩下的就是第二部分:F[i-1][j-1],意思是先把"1"放在第1位上,剩下i-1个数分成j份。需要注意的是,你在一开始要初始化i个数分成1份,方案数是1,还要照顾到F[1][1],所以把F[0][0]置成1。哦对了!i>=j的时候才是有意义的。

#include<cstdio>
using namespace std;
int f[][],n,k,i,j;
int main()
{
scanf("%d%d",&n,&k);
f[][]=;
for(i=;i<=n;++i)
{
f[i][]=;
}
for(i=;i<=n;++i)
{
for(j=;j<=k;++j)
{
if(i>=j)
{
f[i][j]=f[i-j][j]+f[i-][j-];
}
}
}
printf("%d",f[n][k]);
return ;
}

codevs 1039:数的划分的更多相关文章

  1. codevs——1039 数的划分

    1039 数的划分 2001年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 将整数 ...

  2. luoguP1025+codevs 1039 数的划分 x

    luoguP1025 + codevs1039 数的划分 2001年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold   题目描述 Des ...

  3. Codevs 1039 :数的划分

    总时间限制: 1000ms 内存限制:  65536kB 描述 将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序). 例如:n=7,k=3,下面三种分法被认为是相同的. 1,1,5: 1 ...

  4. dp练习(8)——数的划分

    1039 数的划分 2001年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 将整数 ...

  5. NOIP2001 数的划分

    题二 数的划分(20分) 问题描述 将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序). 例如:n=7,k=3,下面三种分法被认为是相同的. 1,1,5; 1,5,1; 5,1,1; 问 ...

  6. 【dfs】p1025 数的划分

    P1025 数的划分 题目描述 将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序). 例如:n=7,k=3,下面三种分法被认为是相同的. 1,1,5; 1,5,1; 5,1,1; 问有 ...

  7. C语言 · 数的划分

    算法训练 数的划分   时间限制:1.0s   内存限制:256.0MB        锦囊1 使用动态规划. 锦囊2 用F[i,j,k]表示将i划分成j份,最后一份为k的方案数,则F[i,j,k]= ...

  8. P1025 数的划分

    P1025 数的划分f[i][j]表示把数i分成j份的方案数,分成两种情况,第一种是最小值是1,另一种是最小值不是1,对于不是1的情况,先都放一个1,那么f[i][j]=f[i-1][j-1]+f[i ...

  9. 数的划分(NOIP2001&水题测试2017082401)

    题目链接:数的划分 这题直接搜索就行了.给代码,思路没什么好讲的,要讲的放在代码后面: #include<bits/stdc++.h> using namespace std; int d ...

  10. 洛谷——P1025 数的划分

    P1025 数的划分 题目描述 将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序). 例如:n=7,k=3,下面三种分法被认为是相同的. 1,1,5; 1,5,1; 5,1,1; 问有 ...

随机推荐

  1. [Google Guava] 4-函数式编程

    原文链接 译文链接 译者:沈义扬,校对:丁一 注意事项 截至JDK7,Java中也只能通过笨拙冗长的匿名类来达到近似函数式编程的效果.预计JDK8中会有所改变,但Guava现在就想给JDK5以上用户提 ...

  2. [Javascript] Convert a forEach method to generator

    For example we have a 'forEach' method which can loop though a linked list: forEach(fn) { let node = ...

  3. 纯 css 控制隔行变色

    使用::nth-child 选择器 tr:nth-child(odd) { background-color: #ccc; } tr:nth-child(even) { background-colo ...

  4. Shell 01 shell概述

    1.查看shells:/etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin / ...

  5. 富文本编辑器粘贴word内容

    很多时候我们用一些管理系统的时候,发布新闻.公告等文字类信息时,希望能很快的将word里面的内容直接粘贴到富文本编辑器里面,然后发布出来.减少排版复杂的工作量. 下面是借用百度doc 来快速实现这个w ...

  6. Comet OJ - Contest #3 (A 比赛 加强版)二分答案

    考试的时候同届神犇 JZYshurak 出了一个  n=$10^5$ 的数据加强版. 刚开始没什么思路,但是忽然想到这个可以转成二分判定+暴力枚举的模型. 二分 ans, 使得大于等于 ans 的值小 ...

  7. leetcode解题报告(12):Maximum Subarray

    描述 Find the contiguous subarray within an array (containing at least one number) which has the large ...

  8. bzoj 3545

    bzoj 3555 离线版本 线段树合并 做法是将询问和边权都排序 给每个点建一棵线段树 然后边建mst边回答询问 每次合并两个连通块的时候 要将两个连通块的线段树合并起来 线段树合并部分code i ...

  9. java集合类-List接口

    List接口包含List接口及List接口的所有实现类,List集合中的元素允许重复. List接口 List接口继承了Collection接口,包含Collection接口的所有方法,还定义了两个非 ...

  10. gym224647B

    gym224647B 题意: 在二维平面中·选出一个面积最小的三角形,输出这个三角形面积的两倍. 解法: 首先,最优解一定在相邻最近的三个点中产生. 然后我们就可以用向量求三角形的面积. CODE: ...