ALGO-22_蓝桥杯_算法训练_数的划分(DP)
问题描述将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5; 1,5,1; 5,1,1;问有多少种不同的分法。 输入格式n,k 输出格式一个整数,即不同的分法 样例输入 7 3 样例输出 4 {四种分法为:1,1,5;1,2,4;1,3,3;2,2,3;} 数据规模和约定6<n<=200,2<=k<=6
记:
动态题目自己写的依旧没能得到满分,学习他人的解题思路
(代码参考:https://blog.csdn.net/liuchuo/article/details/51989133,https://blog.csdn.net/pason_pc/article/details/51228907)
例如输入n=7,k=3
即得到了关于7的所有划分
两个重点:
1->代码中i的值在prev-n/step之间,从prev开始,确保最小值不会比前一个小,避免出现重复情况;
到n/step结束,是因为当超过n/step时,会出现与前面检索情况重复的现象,
(例dp(3,4,2),由于4=1+3或4=2+2在前面的情况出现过,故会出现重复情况,从而推出适用其他情况)
2->用于确定划分的step,当step=1,即划分完成,可进行计数
AC代码:
1 #include <stdio.h> 2 3 int n,k; 4 int ans = 0; 5 6 void dp(int prev,int n,int step) 7 { 8 int i; 9 if (step == 1)/*划分结束*/ 10 { 11 ans ++; 12 return ; 13 } 14 15 16 for (i = prev ; i <= n/step ; i ++) 17 { 18 dp(i,n-i,step-1); 19 } 20 return ; 21 } 22 23 int main(void) 24 { 25 scanf("%d %d",&n,&k); 26 dp(1,n,k); 27 printf("%d",ans); 28 return 0; 29 }
转载于:https://www.cnblogs.com/mind000761/p/8764219.html
ALGO-22_蓝桥杯_算法训练_数的划分(DP)相关推荐
- 蓝桥杯 ALGO-117 算法训练 友好数
问题描述 有两个整数,如果每个整数的约数和(除了它本身以外)等于对方,我们就称这对数是友好的.例如: 9的约数和有:1+3=4 4的约数和有:1+2=3 所以9和4不是友好的. 220的约数和有:1 ...
- [Java] 蓝桥杯ALGO-103 算法训练 完数
问题描述 一个数如果恰好等于它的因子之和,这个数就称为"完数".例如,6的因子为1.2.3,而6=1+2+3,因此6就是"完数".又如,28的因子为1.2.4. ...
- [Java] 蓝桥杯ALGO-117 算法训练 友好数
问题描述 有两个整数,如果每个整数的约数和(除了它本身以外)等于对方,我们就称这对数是友好的.例如: 9的约数和有:1+3=4 4的约数和有:1+2=3 所以9和4不是友好的. 220的约数和有:1 ...
- 蓝桥杯 ALGO-76 算法训练 十进制数转八进制数
编写函数把一个十进制数输出其对应的八进制数. 样例输入 9274 样例输出 22072 #include <iostream> #include <string> using ...
- 蓝桥杯 ALGO-103 算法训练 完数
问题描述 一个数如果恰好等于它的因子之和,这个数就称为"完数".例如,6的因子为1.2.3,而6=1+2+3,因此6就是"完数".又如,28的因子为1.2.4. ...
- 蓝桥杯:算法训练 印章 Python
问题描述 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入格式 一行两个正整数n和m 输出格式 一个实数P表示答案,保留4位小数. 样例输入 2 3 样例 ...
- 蓝桥杯 试题 算法训练 无聊的逗 C++ 详解
题目: 逗志芃在干了很多事情后终于闲下来了,然后就陷入了深深的无聊中.不过他想到了一个游戏来使他更无聊.他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘成另一个长的,他想知道在两根一样长的 ...
- 蓝桥杯 试题 算法训练 无聊的逗 C++ 详解 - 未完善
题目: 逗志芃在干了很多事情后终于闲下来了,然后就陷入了深深的无聊中.不过他想到了一个游戏来使他更无聊.他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘成另一个长的,他想知道在两根一样长的 ...
- 蓝桥杯 试题 算法训练 筛选号码 Java
蓝桥杯 试题 算法训练 筛选号码Java 算法训练 筛选号码 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 有n个人围成一圈,顺序排号(编号为1到n).从第1个人开始报数(从1到3 ...
- 算法刷题系列(四)蓝桥杯python算法训练3(下)
上一次的节点选择算法由于春节过年耽搁了,现在重新补上 上篇链接:算法刷题系列(四)蓝桥杯python算法训练3 - 经验教训 在纷繁复杂的使用了列表来暂存数据之后,发现其实可以利用笔者自己不太常用的字 ...
最新文章
- ExtJs4 笔记(5) Ext.Button 按钮
- 教你如何找到导致程序跑飞的指令
- KahanSummation算法
- 【领奖啦】新年新客见面礼抽奖活动中奖名单出炉!
- android 获取文件夹下的所有文件
- 进程及 fork() 系统调用详解
- 方立勋_30天掌握JavaWeb_Cookie
- SAP Cloud for Customer ABSL的一些优化
- [渝粤教育] 中国地质大学 自动控制原理 复习题 (2)
- vlc内部运行机制以及架构分析
- 推荐一款接口文档在线管理系统-MinDoc
- 测试面试题集-1.测试基础理论
- mysql double 转 字符串_没想到!在MySQL数据库中的数据有这三种类型!
- 解决Vmware虚拟机中没有网络连接Ubuntu无法上网
- linux定时重启tomcat的脚本,Linux系统中的tomcat定时重启脚本
- SECS/GEM协议开发应用
- html的外部调用函数,如何在HTML中调用外部JavaScript函数
- 卧槽,移动互联网时代这就结束了?下一个风口是啥?
- 通过外挂程序实现SBO中的价格控制策略
- 2022牛客多校J题 Serval and Essay
热门文章
- Matplotlib常见问题总结
- OJ系列之---单词倒排
- python多包运行_如何组织包含多个包的python项目,以便包中的每个文件仍然可以单独运行?...
- ReadAndWriteLock(读写锁)
- 072_html5简介
- ERC721关于NFT的学习和理解
- Java数据结构与算法:队列
- 2020.12.15
- Centos 7 64位 minimal 最小化安装的系统中静默安装oracle 11g r2(无图形化安装)
- python特征选择relieff图像特征优选_ReliefF与QPSO结合的故障特征选择算法