递归
文章平均质量分 70
冷月残星
这个作者很懒,什么都没留下…
展开
-
模拟,滚动数组,递归(不公平竞赛,uva 1609)
用递归的思想求解。n是2的整数幂,应该要想到递归的思想的。但不是用递归函数求解的。而是直接模拟。想办法组织一轮比赛,使得比赛过后剩下的n/2个人依然满足条件。当n=2时结果是显然的。紫书上讲的很详细。一开始用滚动集合做,= =超时了。。。集合真的好慢啊。然后改用滚动vector了。当n等于2时若满足题目条件,答案是显然的。一开始时就满足题目条件,因此我们每轮比赛原创 2016-09-15 00:12:12 · 626 阅读 · 0 评论 -
汉诺塔相关,递归(新汉诺塔问题,uva 10795)
想到了要有一个中间状态,要递归求解,但最后还是没想通。在汉诺塔问题中,小块是可以无视垫在最底下的大块的。这就为递归奠定了基础。我们只要先把大块处理好,剩下的小块就可以无视大块处理了。我们先处理最大的需要移动的块那么所有比他小的块就需要先移到备用柱上,然后才可以移动最大快。处理完这个最大快后,就可无视掉他,然后递归处理下一个更小的最大块了。而中间状态就是第一个需要移动的最大块可以移动的状态。原创 2016-10-22 17:12:57 · 449 阅读 · 0 评论 -
约瑟夫环(约瑟夫问题的变形,LA 3882)
只是问最后剩下的是哪个,而没有问具体是怎么删除的,所以不需要完全模拟,只需要模拟编号就好了。一开始有n个,分别编号为 0,1,2,3,...n-1。删除第k个,即编号为k-1的那个,那么删除后剩下 0,1,...k-2,k,...,n-1。然后对n-1个物品重新编号,以便递归调用。0 n-k1 n-k+1...原创 2016-10-27 23:51:04 · 3950 阅读 · 0 评论