acm的一点思考
2015-09-05 10:53
246 查看
今天看背包九讲,发现一句话:“思考”是一个OIer最重要的品质。简单的问题,深入思考以后,也能发现更多。
思考这件事情的重要性不必多说。
关键在后边那句话,简单的问题经过深入思考之后,能发现更多。
现在我要考虑的是对于一个简单问题来说,深入思考是不是必要的。
首先,如果把每一个问题看作自然界规则集合的一个局部演化,并且把规则的总数当成有限的,
那么每解决一个问题,都有概率让下一个问题的解决变得轻松。
另外,规则是分层的,从表观到本质,许多表象不同的问题本质相同,这样如果把一个问题思考得越深,
下一个问题变得相对简单的概率也就更大。
由此,我们要解决的便是,深入思考的成本是否值得概率增大的回报。
不可忽略的一点是,规则层数的每一次递进,都有相当可能会引发数量的质变。
举个例子,氢原子的谱线规律由一幅图像到量子假设,数据规模仅从表面上看就缩小了很多,从而
引发的物理学质变更是缩减了相当多的未解问题。
在算法的角度,np=p?可以演化成绝大部分的问题实质。
对于一个背包问题,对01背包的完美解决可以套用到完全背包乃至泛化物品,
这不仅是一次深入,而是质变。
所以深入思考是极其有效率的,也是必经之路。
问题在于,由于当前知识水平的异同,深入思考所得到的成果也相差悬殊。
怎么处理呢-优先队列
我们把待深入思考的问题进行难易程度感知的排序,同时选择(前几个中)预算收获最大以及预算最大思考量削减的进行思考。
具体因子自己体会。
思考完之后问题的排序会不断变化,我们要重新调整。不断做出当前的选择。
我之所以写这篇文章是为了说明,刷题的内在原因。
当然这只是假设,如果你觉得我说的不对,很明显的一点,
你已经想过该如何刷题了,我的目的也就达到了。
思考这件事情的重要性不必多说。
关键在后边那句话,简单的问题经过深入思考之后,能发现更多。
现在我要考虑的是对于一个简单问题来说,深入思考是不是必要的。
首先,如果把每一个问题看作自然界规则集合的一个局部演化,并且把规则的总数当成有限的,
那么每解决一个问题,都有概率让下一个问题的解决变得轻松。
另外,规则是分层的,从表观到本质,许多表象不同的问题本质相同,这样如果把一个问题思考得越深,
下一个问题变得相对简单的概率也就更大。
由此,我们要解决的便是,深入思考的成本是否值得概率增大的回报。
不可忽略的一点是,规则层数的每一次递进,都有相当可能会引发数量的质变。
举个例子,氢原子的谱线规律由一幅图像到量子假设,数据规模仅从表面上看就缩小了很多,从而
引发的物理学质变更是缩减了相当多的未解问题。
在算法的角度,np=p?可以演化成绝大部分的问题实质。
对于一个背包问题,对01背包的完美解决可以套用到完全背包乃至泛化物品,
这不仅是一次深入,而是质变。
所以深入思考是极其有效率的,也是必经之路。
问题在于,由于当前知识水平的异同,深入思考所得到的成果也相差悬殊。
怎么处理呢-优先队列
我们把待深入思考的问题进行难易程度感知的排序,同时选择(前几个中)预算收获最大以及预算最大思考量削减的进行思考。
具体因子自己体会。
思考完之后问题的排序会不断变化,我们要重新调整。不断做出当前的选择。
我之所以写这篇文章是为了说明,刷题的内在原因。
当然这只是假设,如果你觉得我说的不对,很明显的一点,
你已经想过该如何刷题了,我的目的也就达到了。
相关文章推荐
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法
- 基于C++实现的各种内部排序算法汇总
- C++线性时间的排序算法分析
- C++实现汉诺塔算法经典实例
- PHP实现克鲁斯卡尔算法实例解析
- C#获取关键字附近文字算法实例