- 0
- 0
- 约4.89千字
- 约 29页
- 2026-03-10 发布于广西
- 举报
第19课暴力枚举
学习目标1、了解枚举的基本概念3、了解枚举的优缺点2、掌握枚举的经典题型
知识讲授
枚举的概念前面我们已经接触过简单的枚举,了解过枚举的概念。枚举就是列出一个范围内的所有成员的程序,或者说是将所有情况都举出,并判断其是否符合题目条件,生活中常见的枚举有星期里面有星期一、星期二......星期日。关于简单枚举,其概念我们已经抓住要点:一定的范围、所有的成员、特定的类型。
枚举的优缺点优点:1.能举出所有情况,保证解为正确解。2.能解决许多用其他算法难以解决的问题。3.便于思考与编程。缺点:为何要叫做暴力枚举呢?因为理论上这种方式能求解一切问题,而且有时候暴力是会出奇迹的!然而暴力枚举仅适用于一些规模较小的问题,对于规模巨大的情形,连计算机都会无能为力,感叹“机”生苦短!
简单枚举的模板for(inti=1;i=n;i++){if(条件1)语句1;}在数组a中,从元素a[1]一直找到元素a[n]在for循环中查找如果满足条件1,就执行语句1这是最简单的枚举。
多重枚举 有时候,我们需要求解的变量不止一个,需要枚举多个变量,这时候,就不能用简单枚举啦。我们将涉及到多重变量的枚举。即枚举一切可能情形的组合,再从中筛选出合法的解。 枚举两个变量x和y:for(x=left;x=right;x++){
for(y=left1;y=right1;y++){筛选x和y的取值组合;}
}算法复杂度为两种枚举复杂度之乘积,复杂度飙升!
多重枚举 例如x的范围是1-1000,y的范围是1-100时,枚举两个变量x和y:for(x=1;x=1000;x++){
for(y=1;y=100;y++){筛选x和y的取值组合;}
}容易发现,当x=1,y遍历1到100后,x++;x=i时,y也会遍历1到100;这样就形成了x=1到1000,y=1-100的全部取值组合。循环次数为内外循环次数之乘积。
课堂练习一只公鸡值5元,一只母鸡值3元,而1元可买3只小鸡。现有100元钱,想买100只鸡。问可买公鸡、母鸡、小鸡各几只?多重枚举示例-百钱买百鸡
思路解析在数学中解决这个问题,我们通常会列出一个方程组,设公鸡x只,母鸡y只,小鸡z只,则:
x+y+z=100
5*x+3*y+z/3=100
同时满足上述两个条件的x、y、z值就是所求。为了解决以上的问题,我们可以通过三重循环将所有情况都列一遍,然后通过if判断是不是满足条件,如果满足条件,便输出。公鸡数量x的取值范围是0~100/5,母鸡数量y的取值范围是0~100/3,小鸡数量z的取值范围是0~3*100。
参考代码#includeiostreamusingnamespacestd;intmain(){intx,y,z;for(x=0;x=100/5;x++)for(y=0;y=100/3;y++)for(z=0;z=3*100;z++){if(5*x+3*y+z/3==100x+y+z==100)coutxyzendl; } return0;}这样的写法对吗?运行结果:
02575
32077
41878
71380
81181
11683
12484百钱买百鸡
运行结果检验xyzx+y+z5*x+3*y+z/302575100 100
32077100 100+2/3
41878100 100
71380100 100+2/3
81181100 100
11683100 100+2/3
12484100 100标红色的行数据出现了问题,小鸡的数量必须是3的倍数。
参考代码#includeiostreamusingnamespacestd;intmain(){intx,y,z;for(x=0;x=100/5;x++)for(y=0;y=100/3;y++)
您可能关注的文档
- C++编程《第001课 初识C++》教学设计.docx
- C++编程《第001课 初识C++》教学课件.pptx
- C++编程《第002课 变量和数据类型(1)》教学课件.pptx
- C++编程《第002课 变量和数据类型(1)》教学设计.docx
- C++编程《第003课 变量和数据类型(2)》教学设计.docx
- C++编程《第003课 变量和数据类型(2)》教学课件.pptx
- C++编程《第004课 选择与分支(1)》教学课件.pptx
- C++编程《第004课 选择与分支(1)》教学设计.docx
- C++编程《第005课 选择与分支(2)》教学课件.pptx
- C++编程《第005课 选择与分支(2)》教学设计.docx
- 河北盐山中学等校2025-2026学年上学期高三一模化学试卷(含解析).docx
- 河北正定中学2025-2026学年高一上学期期末考试物理试卷(含解析).docx
- 河北张家口市怀安县2025-2026学年第一学期期末教学综合评价八年级地理试卷(含解析).docx
- 河南安阳市殷都区2025-2026学年第一学期期末教学质量检测七年级地理试卷(含解析).docx
- 河南安阳市滑县2025一2026学年第一学期期末学业质量监测八年级地理试题(含解析).docx
- 河南安阳市林州市2025-2026学年上学期期末考试高一政治试题(含解析).docx
- 河南焦作市武陟县第一中学2025-2026学年高一上学期1月月考语文试卷(含解析).docx
- 河南济源市2025-2026学年上学期期末学业质量调研七年级历史试卷(含解析).docx
- PICC导管并发症的紧急处理与护理.pptx
- 河南鹤壁市2025-2026学年高二上学期期末考试生物试题(含解析).docx
最近下载
- 导数概念及其意义高二下学期数学人教A版(2019)选择性必修第二册.docx VIP
- 无负压供水设备安装施工方案.docx VIP
- 2026年苏州工业园区服务外包职业学院单招职业技能测试题库及参考答案详解.docx VIP
- 道班施工组织设计.doc VIP
- 2025年陕西省西安市碑林区铁一中中考七模物理试卷.doc VIP
- TB-T2075-2002《电气化铁道接触网零部件》.pdf VIP
- 索尼DSC-HX30使用说明书.pdf
- 2026年苏州工业园区服务外包职业学院单招职业技能考试题库有答案解析.docx VIP
- FIDIC白皮书中文版.docx
- 海南省国资委省属国有企业招聘笔试题库2025.pdf VIP
原创力文档

文档评论(0)