![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
递归与分治
文章平均质量分 51
ninesun127
有一个目标,总能让我们欢欣鼓舞~
展开
-
例题 2.6 棋盘覆盖
一道很有趣的递归与分治的题目。关键搞好各个位置的下标关系,以及将整个图分为四部分,如果特殊点不在此部分,则将整个图中间的三个方块标记为特殊点。注释很详细。 画了一张图(主要是还得交作业,不然才不画呢,哈哈哈哈):先贴上递归实现的代码:/*棋盘覆盖的递归算法 棋盘大小为size(2^k)*size大小*/ #includeconst int M原创 2016-09-24 14:38:56 · 637 阅读 · 0 评论 -
openjudge 取石子游戏(递归)
取石子游戏查看提交统计提问总时间限制: 1000ms 内存限制: 65536kB描述有两堆石子,两个人轮流去取.每次取的时候,只能从较多的那堆石子里取,并且取的数目必须是较少的那堆石子数目的整数倍.最后谁能够把一堆石子取空谁就算赢. 比如初始的时候两堆石子的数目是25和7 25 7-->11 7-->4 7原创 2017-08-31 21:58:54 · 1093 阅读 · 0 评论 -
hdu1166 敌兵布阵(线段树单点更新+区间求和)
hdu1166 敌兵布阵(线段树单点更新+区间求和)Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。中央情报局要研究敌人究竟演习什么战术,所以Tidy要随时向原创 2016-12-05 19:17:28 · 418 阅读 · 0 评论 -
poj 1941 The Sierpinski Fractal(递归打印图形)
The Sierpinski FractalTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 4751 Accepted: 1968DescriptionConsider a regular triangular area, divide it into f原创 2017-08-26 15:56:12 · 697 阅读 · 0 评论 -
百练 分解因数(递归)
E:分解因数查看提交统计提问总时间限制: 1000ms 内存限制: 65536kB描述给出一个正整数a,要求分解成若干个正整数的乘积,即a = a1 * a2 * a3 * ... * an,并且1 输入第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a (1 输出n行,每行输出对应一个输入。输出应是一个正整数,指明原创 2017-06-26 19:31:30 · 2951 阅读 · 2 评论 -
蓝桥杯 幂方分解(递归)
算法训练 幂方分解 时间限制:1.0s 内存限制:256.0MB 问题描述 任何一个正整数都可以用2的幂次方表示。例如: 137=27+23+20 同时约定方次用括号来表示,即ab 可表示为a(b)。 由此可知,137可表示为: 2(7)+2(3)+2(0) 进一步:7= 22+2+20 (21用2表示)原创 2017-03-19 14:41:53 · 644 阅读 · 0 评论 -
循坏赛日程表(分治)
n=2……k个运动员要进行网球循坏赛。现要设计一个满足以下要求的比赛日程表:1)每个选手必须与其他n-1个选手各赛一次;2)每个选手一天只能赛一次;3)循环赛一共进行n-1天。#include#includeusing namespace std;int a[501][501];int k;//选手数一共2^n个void table(){ int n=1原创 2016-12-31 20:37:06 · 359 阅读 · 0 评论 -
线性时间选择第k小(递归)
利用O(N)时间选择第k小,思路是五个一组,找到五个的中位数,再在中位数里找中位数,作为partition的pivot;#include#include#includeusing namespace std;const int N=5;//数组大小 int a[N];int ppartition(int p,int r,int x){ //int x=a[p]; int原创 2016-12-28 19:49:30 · 2036 阅读 · 0 评论 -
整数划分问题(递归)
给定一个整数n,和允许的最大和数,求n的最多的划分数。#includeusing namespace std;int dfs(int n,int m){ if(n<1||m<1)return 0; if(n==1||m==1)return 1; if(m>n)return dfs(n,n); if(n==m)return 1+dfs(n,n-1); ret原创 2016-12-28 17:20:00 · 356 阅读 · 0 评论 -
排列问题(递归)
给定带排列的N个元素的集合,输出其全排列#include#includeusing namespace std;const int N=5;//最后一个数字的下标 int a[N+1];void perm(int k,int m){ if(k==m){ for(int i=0;i<=N;i++)cout<<a[i]<<" "; cout<<endl; r原创 2016-12-28 17:13:22 · 248 阅读 · 0 评论 -
2-1 众数问题
给定含有n个元素的多重集合S,每个元素在S中出项的次数称为该元素的重数。多重集S中重数最大的元素称为众数。例如S={1,2,2,2,3,5}。多重集S的众数是2,其重数为3.方法一:使用c++STL的map容器关键字为元素,值为出现的次数tip:简单遍历一遍复杂度为O(n)#include#include//使用c++中的关联容器map//元素作为关键字,出现的次原创 2016-09-19 20:49:54 · 947 阅读 · 1 评论 -
例题 2.7归并排序
#include#includeusing namespace std;const int N=6;void Merge(int *a,int *tmp,int lpos,int rpos,int rend){ int total=rend-lpos+1; int lend=rpos-1; int l=lpos,r=rpos; int index=lpos; whi原创 2016-09-26 15:15:59 · 607 阅读 · 0 评论 -
poj 1057 FILE MAPPING(递归)
FILE MAPPINGTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 2564 Accepted: 1213DescriptionIt is often helpful for computer users to see a visual represe原创 2017-09-11 14:24:25 · 371 阅读 · 0 评论