
递归分治
文章平均质量分 79
Chen丶HC
这个作者很懒,什么都没留下…
展开
-
例题8-12 奇怪的气球膨胀(Erratic Expansion, UVa12627)
首先由图形很容易想到递归求解。采用分治的方法,分别计算出B行之前和A-1行之前的红气球总数,那么A~B行的气球总数就是两者相减。#include #include #include #include #include #include #include #include #include #include #include #include #include #inc原创 2017-11-19 21:21:45 · 384 阅读 · 0 评论 -
计蒜客 Div2 Math of the Ninja
STL的find函数竟然不是二分查找!binary_search竟然返回的是bool!还是lower_bound/upper_bound好用。。#ifdef _DEBUG#pragma warning(disable : 4996)#endif#include #include #include #include #include #include #include #原创 2017-08-14 13:04:40 · 220 阅读 · 0 评论 -
例题8-16 不无聊的序列(Non-boring sequences, CERC 2012, UVa1608)
思路:若序列中存在某个只出现一次的元素,横跨此元素左右的序列必然ok,只需考虑左右序列。由此T(n) = T(k-1) + T(n - k) + T(find唯一元素)。预处理出每个元素左右相同元素的位置,则可以以T(find) = O(n)。优化查找方式,每次从序列的左右两端同时查找,最坏情况T(n) = O(nlogn)。orz.真的好困难,步履维艰。。。两种不同的查找原创 2017-12-06 22:02:08 · 414 阅读 · 0 评论 -
例题8-17 不公平竞赛(Foul Play, ACM/ICPC NWERC 2012, UVa1609)
思路:n = 2时,只要满足条件,目标队伍便能获胜。采取递归分治的解法,每一步构造出满足条件的状态。对每一步的构造方法:首先选取黑色队与灰色队配对;再配对目标队;优先黑色队配对;剩下任意配对。数据读入可以用char存储,%s输入。#include #include #include #include #include #include #include #原创 2017-12-07 20:47:10 · 325 阅读 · 0 评论 -
习题8-5 折纸痕(Paper Folding, UVa177)
思路:典型的递归分形问题。第一步要找规律,开始时,我从旋转的角度思考,无法求解。之后发现以方向标画图: r -> ru -> rulu...发现每次增加的部分为原有部分逆序逆时针转90°。#include #include #include #include #include #include #include #include #include #include #i原创 2017-12-27 19:04:56 · 531 阅读 · 0 评论