![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
递归与分治
~VEGETABLEBIRD~
这个作者很懒,什么都没留下…
展开
-
洛谷——P1087 FBI树
这个题的是本质就是建树和遍历树,不过完全可以将建树和遍历树的过程合并在一起。建树过程,就是将原字符串一分为二,左一半右一半。由于是后序遍历,所以是在两侧树都建完后在输出。这里要注意只有一个字符的特殊情况。#include<iostream>#include<cmath>#include<algorithm>#include<cstring>#include<string>using namespace std;char tree[原创 2020-08-09 19:41:15 · 139 阅读 · 0 评论 -
洛谷——P1010幂次方
原题链接仔细读题可以看出,这道题本质上是递归。比如对于8,8=2^3,而继续对3分析3又可拆解为2的一次幂和2的零次幂。因此,我们采用递归来解决这道题。#include<iostream>using namespace std;int a[15];//这个是让数组储存2的幂次方的结果void POW() { a[0] = 1; for (int i = 1; i <...原创 2020-03-01 11:36:58 · 233 阅读 · 0 评论 -
洛谷——P1257 平面上的最接近点对
原题链接据说暴力可以不过,我们还是采取分治思想,简单的说就是把一个大问题分解成一个个的小问题。那么这道题如何分治呢?很容易可以想到在中间画一条线,求解左右两侧以及跨越左右的最小距离。(可以联想归并排序)按照这样的想法,现将坐标按x排列。思想核心:将所有点分为左右两端,继续分直至左值等于右值或是左值+1等于右值,计算出两点距离。如果left==right,直接返回一个大数即可。接着是...原创 2020-03-27 21:26:12 · 634 阅读 · 0 评论 -
棋盘覆盖问题——分治与递归
这个问题的解决思路是分治与递归。找到黑方格所在的位置,将棋盘等分为四块,将其余三块补为黑色即可。#include<iostream>#include<cmath>using namespace std;const int maxn = 5000;int map[maxn][maxn];int k;int x, y;int color = 0;int bl...原创 2020-03-27 14:55:47 · 230 阅读 · 0 评论