算法基础
文章平均质量分 65
yong_ss
这个作者很懒,什么都没留下…
展开
-
【算法笔记】枚举之熄灯问题
在学北大郭玮和刘家瑛老师的算法基础,做点笔记题目:有一个5*6矩阵的按钮,每个按钮对应一盏灯,每按下一个按钮,这个按钮对应的灯的上下左右的灯都会改变一次状态,通过输入的灯的状态,要求输出能使所有灯熄灭的按钮解决方案解决思路1:枚举所有可能,将按钮所有可能的状态枚举出来,从而找到符合条件的组合。这种思路简单粗暴,但是有总共有30个按钮,要枚举2的30次方种情况,会导致超时。解决思路2:存在一个部分...原创 2018-02-14 21:04:13 · 905 阅读 · 0 评论 -
【算法笔记】枚举之讨厌的青蛙
青蛙会每天晚上跳过稻田,从而踩倒稻子,同一只青蛙每一步跳的步长相等,但不同青蛙跳跃的步长可以不等,青蛙可以自己选择跳跃的方向,但是只能沿着一条直线跳跃。农民每天早上起床看到被踩踏的稻子,希望能找到造成最大伤害的青蛙的路径。稻田里的稻子形成了一个栅格,没根稻子都处于栅格的一个格点上。而青蛙总是会从稻田的一侧跳入,并沿着直线从另一侧跳出,其中每条青蛙行动路径中至少要有三颗水稻。农民只能看到被踩倒的稻子...原创 2018-02-15 09:15:43 · 489 阅读 · 0 评论 -
【编程笔记】求一个数的约数个数
按照最简单的思考方法,是使用枚举法,将这个数除以小于这个数的所有正整数,如果没有余数,则为该数字的约数。这种线性方法虽然思考起来简单,但一旦要计算的数字特别大时,则会超时。还有一种较为简单的思考方式,那就是只枚举到根号该数字举个栗子:如果要求20的约数:1,2,4,5,10,20事实上我们不需要讲所有数字都试一遍,如果20可以被1整除,则其商20一定也为其约数;如果20可以被2整除,那其商10一定...原创 2018-02-23 21:15:04 · 15318 阅读 · 2 评论 -
【编程笔记】整数拆分成2的幂次方的和
题目描述一个整数总可以拆分为2的幂的和,例如: 7=1+2+4 7=1+2+2+2 7=1+1+1+4 7=1+1+1+2+2 7=1+1+1+1+1+2 7=1+1+1+1+1+1+1 总共有六种不同的拆分方式。 再比如:4可以拆分成:4 = 4,4 = 1 + 1 + 1 + 1,4 = 2 + 2,4=1+1+2。 用f(n)表示n的不同拆分的种数,例如f(7)=6. 要求编写程序,读入n(...原创 2018-02-24 12:19:49 · 8950 阅读 · 0 评论