码迷,mamicode.com
首页 > 其他好文 > 详细

关于10月20日#8的六道题的心得与感悟

时间:2015-10-20 21:12:53      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

二十号了,复赛在即,还望努力.

 

第一题:脑筋急转弯一样的神奇水题.有一个a×b的矩形桌子,和若干个半径为r的圆盘,两人轮流把圆盘放到桌子上,不能有重叠的部分.最后无法放圆盘的人就是输家.最后输出赢家.

一开始思来想去,完全没有思路.最后看题解才发现是一道大水题.放盘子的时候,只有两种情况. 1.盘子可以放下,那么只要第一个人放在了矩形正中央,接下来,不管第二个人放在哪,总能找到一个与之对称的位置来放置圆盘.2.盘子不能放下,当前的第一个人也就输了.

所以只需要判断第一个盘子能否放下即可得到答案.

 

第二题:暴力.利用搜索可以解决.不过在一些小细节上要多加注意.在此略作总结.1.在判断的时候,先判断下标是否合法,在判断内容.很多时候RE是因为在检查下标之前检查值导致的引用了非法地址.2.边界的设置,边界条件是什么,什么时候返回值,对于合法与非法的判断标准.这些都应该在读题审题的时候一起处理和了解清楚,不然很容易爆栈.3.拓展的顺序,有时候搜索的顺序可以大幅度的提高搜索效率(特别是DFS,也可以把它想成是一种非常特别的评估函数)

 

第三题:经典的搜索题.从每个点出发,寻找所有能到达的地方,加以标记.在判断是否所有的奶牛所在的牧场都可以到达.需要注意的是,因为是从点出发找奶牛,所以加边的时候要倒着建边(即起点和终点相反)

 

第四题:给出N×N网格,要求从 (1, 1)  走到  (n, n) , 要使得你所走路径的最大海拔差最小.

因为是求最大值的最小值,说以应当是一个典型的二分题.不过,当时眼拙,没看出来(应该说是看出来了没想哪方面想).先没读清楚题,以为只能向右,向下.果断写了DP;后来重新读题,开始写暴力搜索,直接WA掉.最后不得已向人求教,原为二分.

二分枚举(logN)可能的差值,对差值进行检验.检验的时候,如果单纯的直接寻找路径判断,一定会超时.可以利用一个巧妙的方法,枚举起点,加上差值,得到一个可能的区间范围.然后在图中寻找满足的区间的点,看能否到达终点.

 

第五题:01背包问题,有一点小小的改变,最终的结果中不能出现负值.其他的照旧.

 

第六题:还没读题......

关于10月20日#8的六道题的心得与感悟

标签:

原文地址:http://www.cnblogs.com/hy-dgj/p/4895880.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!