题目链接:点击查看

题目大意:给出两个数n和k,要求将n分成k份,问有多少种方案数,注意:

1 1 5和1 5 1还有5 1 1算同一种方案

题目分析:因为n只给到了200,并且k最大为6,所以直接dfs搜索就好了,注意记得剪枝,还是需要注意一下dfs对于题目的设计,还有关于模型的抽象,对于这个题目而言,可以抽象出来的模型是k个桶,我们需要像其中放置n个球,每个桶至少需要放一个,这样我们就可以直接搜索k个桶,当k个桶都搜索完后,就可以判断当前答案的合理性了,总的时间复杂度应该是30^6,差不多7e8左右,剪枝后复杂度就小很多了

因为这个题目每个桶和每个球都是无差别的,所以我们为了防止重复枚举,可以选择非严格升序枚举,也就是让每个桶的球都大于等于前一个桶中球的个数

代码:

#include<iostream>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<climits>
#include<cmath>
#include<cctype>
#include<stack>
#include<queue>
#include<list>
#include<vector>
#include<set>
#include<map>
#include<sstream>
using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=1e6+100;int ans=0;void dfs(int cur,int sum,int last)//cur:当前遍历到第几个桶 sum:手里还有多少个球要放 last:当前桶里放了多少个球
{if(cur==0)//所有的桶都枚举完毕{if(sum==0)//如果所有的球都放进去了,方案数加一ans++;return;}for(int i=last;i<=sum/cur;i++)//非严格升序递归+剪枝,因为剩余的球若放在cur个桶里,每个桶最多放sum/cur个球dfs(cur-1,sum-i,i);
}int main()
{
//  freopen("input.txt","r",stdin);
//  ios::sync_with_stdio(false);int n,k;scanf("%d%d",&n,&k);dfs(k,n,1);cout<<ans<<endl;return 0;
}

洛谷 - P1025 数的划分(dfs)相关推荐

  1. 洛谷 - P1025 数的划分(计数dp)

    题目链接:点击查看 题目大意:将整数 n 分成 k 份有多少种分法 题目分析:设 dp[ i ][ j ] 为将整数 i 分成 j 份的方案数,拆分整数可以等价为放小球,相当于将 n 个小球放进 k ...

  2. 洛谷——P1025 数的划分

    https://www.luogu.org/problem/show?pid=1025 题目描述 将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序). 例如:n=7,k=3,下面三种分 ...

  3. 洛谷P3939 数颜色 vector乱搞

    洛谷P3939 数颜色 标签 vector乱搞 简明题意 给一个序列(n <= 3e5),现需要你支持两种操作. 询问区间[L,R]中有多少个值为x的数 交换第k和k+1个数 思路 首先,这题需 ...

  4. *【洛谷 - P1025】数的划分(dfs 或 dp 或 母函数,第二类斯特林数Stirling)

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

  5. 【洛谷P1255 数楼梯】

    P1255 数楼梯 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 看上去是个斐波那契数列,其实是高精度计算啦 虽说是个水题,但可以练习一下高精度计算,之前我都是顺序输入,通过指针偏 ...

  6. 洛谷P1506 拯救oibh总部 —DFS—围墙

    拯救oibh总部 - 洛谷 ## 题目背景 oibh 总部突然被水淹没了!现在需要你的救援-- ## 题目描述 oibh 被突来的洪水淹没了,还好 oibh 总部有在某些重要的地方起一些围墙.用 `* ...

  7. 洛谷 P1028 数的计算

    递推计算即可 f[1]=1 f[2]=2=f[1]+1 f[3]=2=f[1]+1 f[4]=4=f[1]+f[2]+1 f[5]=4=f[1]+f[2]+1 我的代码(算法借鉴洛谷题解) #incl ...

  8. uoj#348/洛谷P4221 [WC2018]州区划分(FWT)

    传送门(uoj) 传送门(洛谷) 全世界都会子集卷积就咱不会--全世界都在写\(FMT\)就咱只会\(FWT\)-- 前置芝士 或运算\(FWT\)或者\(FMT\) 左转洛谷模板区,包教包会 子集卷 ...

  9. 数的划分(洛谷-P1025)

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

最新文章

  1. css案例学习之全局声明*{} 与body{}的区别
  2. 【CSS】多行溢出显示省略号
  3. 【数字信号处理】相关函数 ( 相关系数与相关函数 | 相关函数定义 )
  4. MySQL性能优化点记录
  5. [JavaWeb-JavaScript]JavaScript_Function函数(方法)对象
  6. graphics | 基础绘图系统(九)——栅格图、点密度图、等高线(填充)图、三维图...
  7. consul mysql 检查_MySQL在Consul服务中的健康检查逻辑
  8. firefox登录国际账户
  9. 游戏美术-魔兽世界查看器的正确使用方法
  10. 计算机右键菜单太多,文件右键太多?win10 ghost小方法删除右键多余菜单
  11. 软件著作权申请怎么申报?申报流程、应该注意哪些事项
  12. BAT脚本编写教程(比较易懂和全面)
  13. Excel快捷键(字母+数字)大全
  14. 业界安全事件最新动态
  15. C#删除文件和文件夹到回收站
  16. 通过powerbuilder直接读和写Excel文件,支持xlsx,xls,et等格式,不需要安装office excel,WPS等依赖
  17. java8日期加减_java时间加减
  18. 网站人物角色的创建相关整理
  19. Alpha多样性之箱线图解读
  20. 我国网络安全应急体系

热门文章

  1. realmeq参数配置详情_小米11什么时候发布 小米11参数配置详情
  2. 认证(登录)功能需求分析
  3. 会话创建过程-创建Executor
  4. MyBatis 实际使用案例-mappers
  5. 方法练习3_打印指定次数的HelloWorld
  6. 组织商品详情页的数据模型
  7. try_catch_异常处理的第二种方式,自己处理异常
  8. Spring Session实战2
  9. 设计模式之_Iterator_05
  10. excel转html放在tomcat,Excel转web!把excel在线打开??