随笔分类 -  分治策略

摘要:【题意描述】在高速公路的两旁有很多房子,每个房子有自己的坐标,现在给定三个基站,每个基站都有相应的覆盖半径d,现在要使基站覆盖所有的房子,问基站应该如何建,并且最小的覆盖半径是多少?【解题思路】我们可以对基站的覆盖半径进行二分,二分的左区间端点l是0,右区间端点r是c[n]-c[1]即所有房子所占据... 阅读全文
posted @ 2014-08-06 21:10 future_hero 阅读(362) 评论(0) 推荐(0)
摘要:【题意描述】本题就是给定代码任务为n行,起始代码书写能力为v行,然后每经过一次除以k,当v变为0时看是否完成代码任务n?并求出最小的v。【解题思路】我们可以对v值进行二分,然后确定最后的v值。【AC代码】 1 #include 2 using namespace std; 3 int ok(int ... 阅读全文
posted @ 2014-08-06 20:52 future_hero 阅读(296) 评论(0) 推荐(0)
摘要:【题意描述】对于给定的四个序列,从每个序列中选出一个数,并让四个数相加,输出所有相加和为0的情况数目。【解题思路】我们可以考虑前两列的数字相加之和一定与后两列相加和互为相反数,那么我们可以枚举出前两列数字之和,并且,枚举出后两列数据之和的相反数,并对之排序,然后利用二分法进行查找即可。【AC代码】#... 阅读全文
posted @ 2014-08-05 16:53 future_hero 阅读(220) 评论(0) 推荐(0)
摘要:【题意描述】给定一串数据,划分成m段,并把每段内的数据相加,使得m段数据中的最大值最小。【思路分析】这里很多人可能考虑用DP,但是会超时。那么根据DP与分治的联系,我们可以联想到运用二分法,对所求最大值进行二分,直到所划分区间的数目等于m段即停止。这里在确定二分的区间有点技巧,首先low肯定是整个数... 阅读全文
posted @ 2014-08-05 11:31 future_hero 阅读(223) 评论(0) 推荐(0)