NOIP“回溯法”与“枚举法”的区别

作者&投稿:肇疯 (若有异议请与网页底部的电邮联系)
NOIP1996砝码称重问题c语言详解 要枚举法 要快~

#include
using namespace std;
int i,a1,a2,a3,a5,a10,a20,b1,b2,b3,b5,b10,b20,h=0;
bool b[1001];
int main()
{
cin>>a1>>a2>>a3>>a5>>a10>>a20;
for (i=0;i<1001;++i) b[i]=false;
for (b1=0;b1<=a1;++b1)
for (b2=0;b2<=a2;++b2)
for (b3=0;b3<=a3;++b3)
for (b5=0;b5<=a5;++b5)
for (b10=0;b10<=a10;++b10)
for (b20=0;b20<=a20;++b20)
b[b1+b2*2+b3*3+b5*5+b10*10+b20*20]=true;
for (i=1;i<1001;++i) if (b[i]==true) ++h;
cout<<h;
return 0;
}

NOIP级别中,普及组和提高组的要求不同。
但是这几类动规的题目掌握了,基本也就可以了:
1、背包问题:01背包、完全背包、需要构造的多维01背包
详见背包九讲
2、最大降序:例如打导弹
3、矩阵相乘:例如能量珠子
4、买股票
5、方格取数:单向的、双向的
6、三角取数
这些都是简单的动规的应用,必须掌握,背也要背出来,还要会套用。

至于排序,本人认为基本的选择排序大家都会,快速排序是一定要会的,当数据规模<500时用选择排序,当数据规模在500和100000之间是用快速排序,但是NOIP中经常考到基数排序,例如划分数线等,数据规模会达到1000000,用其他的排序法可能会超时一两个测试点。

至于搜索,那是必须掌握的深搜、广搜都要会,主要是深搜,当提高组碰到一下子想不出动规的状态转移方程式,深搜穷举也是可行的,一般都能拿到不少的分数。个人之间广搜的用处不大,程序复杂而且爆机率很高。当然n个for的穷举法在不得已的时候也能得不少分,只要if剪枝的好,对付八后问题等问题时,时间效率比很高。

另外就是图的遍历,有关图的最小生成树、图的单源最短路径,也是需要很好地掌握,一直会考。当然,深搜的本事高的人可以用深搜搞定。

总结如下:要得一等,必须对模拟法和穷举法有深刻的体会,并知道很多变通的手段;对快排要背的滚瓜烂熟;对深搜要做到不管是贪心还是动规的题,都能用深搜实现,只不过少量点超时而已;动规要记住六大模型,然后背包要理解透彻;数学很重要,数学分析的题要做对,例如排组合、凸包、计算几何近几年常考。有了这些,一等可以稳拿。

囧·······这个的区别多明显啊·····
回溯回溯,就是反复调用一个函数,一步一步走下去,如果走到某一步,条件不适合,就退回去,重新选择。

枚举,就是把所有可能的情况一个一个列出来,取最优。

深搜,就是深度优先搜索。 利用递归的方法(反复调用函数),可以找到所有可能解,然后选最优。

个人认为:深艘就是回朔,回朔是一种枚举

回朔不一定要函数

不能光从形式上看呀

回溯高级些


北川羌族自治县15241495766: NOIP“回溯法”与“枚举法”的区别 -
党农甲磺: 囧·······这个的区别多明显啊····· 回溯回溯,就是反复调用一个函数,一步一步走下去,如果走到某一步,条件不适合,就退回去,重新选择.枚举,就是把所有可能的情况一个一个列出来,取最优.深搜,就是深度优先搜索. 利用递归的方法(反复调用函数),可以找到所有可能解,然后选最优.

北川羌族自治县15241495766: 回溯算法与枚举算法的区别是什么 -
党农甲磺: 回溯分析是追踪决策的特性之一. 是指对原始决策的产生机制、决策内容、主客观环境等进行分析.从起点开始,按顺序考察导致决策失误的原因、问题的性质、失误的程度等.[算法分析] 为了描述问题的某一状态,必须用到它的上一状态,而描...

北川羌族自治县15241495766: 旅行商问题的问题分析 -
党农甲磺: 旅行商问题要从图G的所有周游路线中求取最小成本的周游路线,而从初始点出发的周游路线一共有(n-1)!条,即等于除初始结点外的n-1个结点的排列数,因此旅行商问题是一个排列问题.排列问题比子集合的选择问题通常要难于求解得多...

北川羌族自治县15241495766: 《文献信息检索》简答题 -
党农甲磺: 1、简述常用的信息检索方法. 常用的信息检索方法有:常规检索法、回溯检索法、循环检索法.常规检索法是指根据信息需求从时间上对所找内容给以限定检索的方法.常规检索法又彩为常用检索法、工具检索法,它是以主题、分类、作者...

北川羌族自治县15241495766: 忆苦思甜中的苦与甜什么意思 -
党农甲磺: 苦指过去的艰苦,艰难的生活,甜指现在和将来的幸福生活

北川羌族自治县15241495766: 几种常用的算法简介 -
党农甲磺: 1、穷举法穷举法是最基本的算法设计策略,其思想是列举出问题所有的可能解,逐一进行判别,找出满足条件的解. 穷举法的运用关键在于解决两个问题: 在运用穷举法时,容易出现的问题是可能解过多,导致算法效率很低,这就需要对列举...

北川羌族自治县15241495766: 回溯算法的基本思想及其在软件开发中的应用 -
党农甲磺: 回溯算法其实就是简单的枚举,只不过是加了一点技巧.回溯算法一般是已经完成的都是合法的,后续的操作不需要考虑先前已经完成的.短时间内通过文字也说不太明白,建议从一些题目去体会,八皇后、全排列.并综合递归去理解这样的话应该会有比较深刻的理解.至于在软件开发中的应用,算法思想可以用在任何方面,最近甚至比较流行,将一些算法用到硬件中,算法提供的是一种思想,认真体会就会发现它会应用在任何方面.希望能帮助到你.

北川羌族自治县15241495766: 数学建模有哪些前沿算法或者说新颖算法? -
党农甲磺: 一、蒙特卡罗算法 二、数据拟合、参数估计、插值等数据处理算法 三、线性规划、整数规划、多元规划、二次规划等规划类问题 四、图论算法 五、动态规划、回溯搜索、分治算法、分支定界等计算机算法 六、最优化理论的三大经典算法:模拟退火法、神经网络、遗传算法 七、网格算法和穷举法 八、一些连续离散化方法 九、数值分析算法 十、图象处理算法

北川羌族自治县15241495766: 联想思维的移植法有哪些? -
党农甲磺: 1 收敛型思维法 目标识别法 间接注意法 层层剥笋法 2 系统思维法 系统思维的特征 运用系统思维的注意事项 整体性原则 综合性原则 优化性原则 3 逆向思维法 逆向思维是一种能力 反转型逆向思维法 转换型逆向思维法 缺点逆用思维法 4 回溯推理...

北川羌族自治县15241495766: 数学建模的十大算法 -
党农甲磺: 1、蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法)2、数据拟合、参数估计、插值等数据处理算法(比赛中通常会遇到大量的数据需要...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网