高效算法——分治法
文章平均质量分 81
XDU_Skyline
Everything is over, everything is just beginning.
展开
-
例题8-12 奇怪的气球膨胀 UVa12627
1.题目描述:点击打开链接2.解题思路:本题相当于一道数学题:看图找规律。通过观察可以发现第k(k>1)小时的图相当于第k-1时候的三个图拼接起来再加上全部是蓝球的图,因此可以通过寻找递推关系加以解决。假设函数f(k,i)表示第k小时,前i行的所有红球个数,则问题的答案就是f(k,B)-f(k,A-1)。f(k,i)的求解需要根据i与2的(k-1)次方的大小分类讨论,递归求解。3.代码:原创 2015-02-06 20:32:27 · 1284 阅读 · 0 评论 -
#297 (div.2) D. Arthur and Walls
1.题目描述:点击打开链接2.解题思路:本题利用BFS解决。一开始想用dfs去搜索连通块,再想办法找到该连通块的左上角和最大的长,宽,然后把该区域都变成'.',显然这种做法无法处理规模较大的情况。此时应该从分割的思想去考虑。找到一个最基本的元素块,把长方体看做是由这些元素快堆积出来的即可。那么这种元素块应该是什么样的呢?通过观察不难发现,所有需要变为'.'的点周围肯定都是'.'。换句话说,原创 2015-03-27 15:26:03 · 779 阅读 · 0 评论 -
利用分治法解决棋盘覆盖问题
1.问题描述:点击打开链接2.代码:#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#i原创 2015-08-18 16:43:39 · 2093 阅读 · 0 评论