【算法】算法是一种思维

算法是一种思维。

在下这段时间对算法的理解应该要归结于这样一句话
大胆假设 小心论证嘛

起初最早对算法有个概念 是贪心算法
对贪心算法的表述
百度百科是这样说的

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。
贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。

当时其实对这种说法还是一知半解的(现在好像也是)
所以对算法到底是什么 一直得不到一个明确的答案

在想明白之前
在下感觉做题的收益有点低
题目地址: HPU15级个人赛 (hpuacm)
而这次的个人赛有八道题目
在下结束之后忘了保存代码了
而又感觉去网站提交记录找 没必要
所以对于这些题目的代码
应该会上传一个重新写的版本

八道题目分别是:

这里写图片描述
就不一一截图了
以后慢慢整理
这篇文章就是从解题思路上来简单说说

Problem A 利息计算 :

作为一道纯粹的数学计算题
一定程度上考察了对数据类型和输入输出的控制
但是这种题目作为签到题本身
我觉得更重要的目的是让自己找到感觉
不至于在接下的答题中慌乱
而这此次比赛我恰恰犯了这点错误
对一团数字不加思考就选择先做B题
然而……

Problem B - 18岁生日 :

在下这次个人赛的噩梦之源
又是一个关于闰年的问题
从这一题
在下第一次知道闰年并不是严格的四年一次

一个回归年不是365天,而是365天5小时48分46秒,多出的时间就会累积起来,新年就会后移,所以每隔四年就设一个闰年,这一年的二月改为29天.这样,闰年就有366天.但是,这样每一百年又差不多多了一天,所以又规定”百年”不设闰,即”百年24闰”.但百年扣一天闰还是不刚好,于是又规定,公元年数为400倍数者设闰.

而我原先一直以为 1900 不是闰年是个数学问题
也就是1988 1902都是闰年(其实并不是)
但是经过这次教训也是学习了

同时更深层次的
也是对自己的一个教训
太过自信了
也就是过于相信自己是知道出题人的想法的
(不一定被4整除 被100整除的还要能被400整除)
本来一般的题目这种想法就够了
然而这一题我所采用的方法
恰恰用到了四年一闰这个思想
(这个想法是错误的)
具体解法讨论见题解文章

Problem C - Magic Spheres

这一题也是迷之WA
各种情况都想不通
然后发现了一句……

he needs at least x blue, y violet and z orange spheres.

重点是……

at least

也就是上面的数据没必要完全等于下面的
只要能把上面变化成大于等于下面的就好了
然而给的两组Yes的数据全部满足
等于下面的
所以导致对题目理解错误……
想想原因
就是对于这种英文题目
我一般是对照输入输入猜题目意思
所以导致了先入为主的思想
这也是以后面对英文需要警醒的一件事情

Problem D - The Best Gift

这一题神奇之处在于
我竟然没用到题目给的m就顺利AC了-.-

Problem E - Red and Black

这题是道经典的搜索题

Problem F - Load Balancing

负载均衡 序列平衡的一种算法
当时比赛因为前面用的时间太长了
导致这一题都没时间看了……
(主要也是看到别人都WA了好多 就没写)

Problem G - The Suspects

按照题意应该是并查集
不过当时我的第一眼思路是往搜索想的
最终也是做出来了

Problem H - Networking

最小生成树问题
之前做过类似的了

经过这八道题
其实我在思考到底什么是算法
如果它只是一种解题方法的话
我觉得似乎并不恰当

比如有些题目 如
Problem G - The Suspects
属于简单的并查集
但如果用搜索却也并不难理解

又或者
Problem E - Red and Black
属于搜索 但bfs dfs却都可以解答

那么 什么是算法
我认为把算法归结为一种解题思维
或许更加恰当

也就是 不需要把算法看做一种模板 而是一种解题的思路
区别是什么呢
我觉得就是判断一道题是像是某某算法的题目
脑海里第一意识出现的是算法的思想 还是算法的代码框架

我觉得更好的情况还是理解算法的本质
这样无论题目千变万化 总可以找到解题的钥匙
而不用纠结于它到底符合哪一个模板

算法是一种思维
这便是我现阶段对算法的理解
先照着这条路走吧
然后慢慢修正自己的观点

更何况
无论怎样理解
对一个算法还是要认真学习的
甚至说更加努力的去学习
探究其本质的一些东西

话说我最近貌似开始养成
把一篇文章分成几天来写的习惯了-.-
貌似有时候会影响思路~
哈哈哈
尽量还是一口气写完吧~
适当补充还是可以的

posted @ 2016-01-13 17:50  BoilTask  阅读(37)  评论(0编辑  收藏  举报