- 1
- 0
- 约1.73万字
- 约 45页
- 2019-12-31 发布于湖北
- 举报
第五章 搜索与回溯算法 【例9】数的划分(NOIP2001) 【问题描述】 将整数n分成k份,且每份不能为空,任意两种分法不能相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。 1,1,5; 1,5,1; 5,1,1; 问有多少种不同的分法。 【输入格式】 n,k (6n≤200,2≤k≤6) 【输出格式】 一个整数,即不同的分法。 【输入样例】 7 3 【输出样例】 4 { 4种分法为:1,1,5;1,2,4;1,3,3; 2,2,3 说明部分不必输出 } 【算法分析】 方法1、回溯法,超时,参考程序如下。 #includecstdio #includeiostream #includecstdlib using namespace std; int n,i,j,k,rest,sum,total; int s[7]; int main() { cout Input n k; cin n k; total = 0; s[1] = 0; i = 1; while (i) { s[i]++; if (s[i] n) i--; else if (i == k) { sum = 0; for (j = 1; j = k; j++) sum += s[j]; if (n == sum) total++; } else { rest -= s[i]; i++; s[i] = s[i-1] - 1; } } cout total; system(pause); return 0; } 方法2、递归,参考程序如下。 #includecstdio #includeiostream #includecstdlib using namespace std; int n,k; int f(int a,int b,int c) { int g = 0,i; if (b == 1) g = 1; else for (i = c; i = a/b; i++) g += f(a-i,b-1,i); return g; } int main() { cout Input n,k:; cin n k; cout f(n,k,1); system(pause); return 0; } 方法3、用动态循环穷举所有不同的分解,要注意剪枝,参考程序如下。 #includecstdio #includeiostream #includecstdlib using namespace std; int n,k,total; int min(int x,int y) { if (x y) return x; else return y; } void select(int dep,int rest,int last) { int i; if (dep == 0) total++; else for (i = min(rest-dep+1,last); i = rest/dep; i--) select(dep-1,rest-i,i); } int main() { cout Input n,k:; cin n k; total = 0; select(k,n,n); cout total; system(pause); return 0; } 方法4、递推法 首先将正整数n分解成k个正整数之和的不同分解方案总数等于将正整数n-k分解成任意个不大于k的正整数之和的不同分解方案总数(可用ferror图证明之),后者的递推公式不难得到,参考程序如下。 #includecstdio #includeiostream #includecstdlib #i
您可能关注的文档
- 第1节 物质跨膜运输的实例资料.ppt
- 第1章:什么是企业想法资料.ppt
- 第1章节 信息安全标准概述资料.pdf
- 第2讲_公司治理概论资料.ppt
- 第2课-企业的生产与经营资料.ppt
- 第2章 企业战略管理资料.pptx
- 第2章节 metal fighter(mf)机器人资料.pdf
- 第2章节 关系模型跟关系数据库资料.ppt
- 第3页--有限政府理论的现代渊源资料.pdf
- 第3章_公共关系主体社会组织资料.ppt
- 2026年厨房适老化改造燃气灶油烟机联动防干烧主动切断气源技术.docx
- 2026年茶叶食用菌果蔬畜禽水产优势产业数字化申报条件.docx
- 2026年川渝共建联合实验室与重大科研基础设施共享指南.docx
- 2026年曹操出行换电实践:每天多赚80分钟的运营价值.docx
- 2026年城镇开发边界管理办法地下空间条款解读.docx
- 2026年超导储能系统磁体设计与低温恒温器选型指南.docx
- 2026年被动式超低能耗建筑设计原理与北方地区实践.docx
- 2026年城市环境无人机坠毁应急预案.docx
- 2026年产品环境足迹(PEF)国际标准与中国碳足迹标准对比.docx
- 2026年城市垂直起降场选址标准与规划设计.docx
最近下载
- 2025年唐山市路北区辅警(协警)招聘考试题库附答案解析.docx VIP
- 《4.2 大学之道》教案、导学案、同步练习(附教学设计).docx
- Unit 6 Birthdays Lesson 1(课件)-三年级英语上学期(人教新起点版).pptx VIP
- 初一初中语文现代文阅读理解专题训练含答案(完整打印版).pdf VIP
- Q321183 JH005-2020 JH先张法预应力超高强混凝土管桩.pdf VIP
- 2025年锦州师范高等专科学校单招职业适应性考试题库及答案参考.docx
- 年产300吨猕猴桃果酒的工厂设计.docx VIP
- 2024年广东省航道事务中心所属事业单位招聘考试真题.pdf VIP
- 点到为止、不得罪人的简短生活会相互批评意见100条.docx VIP
- 2025年演出经纪人紧急事件处理中的团队沟通与决策专题试卷及解析.pdf VIP
原创力文档

文档评论(0)