![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
递推与递归
文章平均质量分 68
复盘
jigsaw_zyx
人生总是来来往往,可凭心而行,可随心而动,千万别等来日方长
展开
-
棋盘覆盖问题(递归分治)
一开始题目都没读懂。。。其实就是一个递归分治,每次递归寻找特殊数,划分为四块,如果当前块中没有特殊数,我们则构造特殊数。#include<stdio.h>int k=1;int a[1086][1086];void solve(int lx,int ly,int spex,int spey,int len){ if(len<=1) return; int t=k++; len=len/2; //左上 if(spex<lx+len&&s原创 2022-03-18 10:03:24 · 1167 阅读 · 1 评论 -
动态规划从入门到提升详解
写在开头:这篇博客将从最开始入门动态规划,适合小白以及学过想要提高的选手,篇幅可能较长持续更新,主要是为了带学弟学妹以及自己复习而写。大家可以根据自己的需要进行学习,下面介绍一下如何学习此博客文章目录入门数字三角问题分析递归分析递推分析解决动态规划的一般思路入门要想学好动态规划首先要学好递归与递推,在此基础上才能进阶到动态规划,这个步骤是怎么来的呢?先别急,首先我们要明白一个概念我们写的递归程序其实就像我们的深度优先搜素(不理解的可以先去学学,不学也可以只是帮助理解,后面内容用不到),也就是深原创 2022-01-29 15:31:14 · 1300 阅读 · 1 评论 -
最大子序列和问题
问题:给定n个整数(可能为负数)组成的序列 a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j] 的子段和的最大值。当所给的整数均为负数时定义 子段和为0。例 -20,11,-4,13,-5,-2输出:20分析:当n=1时,最大子段和为-20;当n=2时,子段为11和11-20,最大字段和为11;当dp(n),子段有n和dp(n-1),选择大 的哪一个;故dp(n)=max(a[n],dp(n-1)+a[n]);特地的,当全是负数,则输出0;代码实现原创 2021-10-08 16:50:04 · 96 阅读 · 0 评论 -
Tallest Cow(差分的应用)
文章目录题目描述思考AC代码:题目描述题目链接:https://ac.nowcoder.com/acm/contest/999/C题意:n头奶牛,告诉你最高的那头是第I头和它的高度H,以及R组两头互相看见的牛AiA_iAi和BiB_iBi,其中两条牛能互相看见的条件是它们中间的牛都小于它们两个的高度;求n个牛的最大高度。思考要让两头牛互相能看见,需要将两头牛中间的牛的高度都减一。利用差分记录相对高度,起始全为0,由于C[i]最高,所以一定为0;注意去重!AC代码:#inclu原创 2021-08-03 23:44:09 · 169 阅读 · 0 评论 -
IncDec Sequence(差分)
文章目录差分题目描述差分B[1]=A[1],B[i]=A[i]-A[i-1](2题目描述题目链接:https://ac.nowcoder.com/acm/contest/999/B原创 2021-08-03 17:48:00 · 819 阅读 · 0 评论 -
[HNOI2003]激光炸弹(前缀和)
文章目录前缀和题目描述思考AC代码前缀和容斥原理及其应用题目描述思考首先二维前缀和代码 for(int i=1;i<=x;i++) for(int j=1;j<=y;j++) a[i][j]+=a[i][j-1]; for(int j=1;j<=y;j++) for(int i=1;i<=x;i++) a[i][j]+=a[i-1][j];求长为r的正方形内所有数的和:a[i][j]-a[i-r][j]-a[i][原创 2021-08-03 16:16:48 · 347 阅读 · 0 评论 -
Fractal Streets||分形之城
这道题…蛮难的…文章目录问题描述思考AC代码:问题描述城市的规划在城市建设中是个大问题。不幸的是,很多城市在开始建设的时候并没有很好的规划,城市规模扩大之后规划不合理的问题就开始显现。而这座名为 Fractal 的城市设想了这样的一个规划方案,如下图所示:当城区规模扩大之后,Fractal 的解决方案是把和原来城区结构一样的区域按照图中的方式建设在城市周围,提升城市的等级。对于任意等级的城市,我们把正方形街区从左上角开始按照道路标号。虽然这个方案很烂,Fractal 规划部门的人员还是想知原创 2021-07-29 21:22:19 · 319 阅读 · 0 评论 -
Strange Towers of Hanoi 汉诺塔问题及其升级(递推)四个汉诺塔问题
今天学习递推的汉诺塔问题,非常的有趣文章目录汉诺塔问题来源分析Strange Towers of Hanoi【DP】【递推】题目大意:思考汉诺塔问题来源汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。分析有三根柱子(A,B,C)。A柱子上面套着n个圆盘。这些圆盘大原创 2021-07-28 15:56:50 · 6150 阅读 · 1 评论 -
递归思想入门
递归课堂开课啦今天我们一共有三道题,让你了解递归,快速掌握递归方法。文章目录问题1:递归实现指数型枚举问题2:递归实现组合型枚举问题3:递归实现排列型枚举问题1:递归实现指数型枚举链接:https://ac.nowcoder.com/acm/contest/998/A题目描述从 1∼n这 n个整数中随机选取任意多个,输出所有可能的选择方案。输入描述:一个整数n。输出描述:每行一种方案。同一行内的数必须升序排列,相邻两个数用恰好1个空格隔开。对于没有选任何数的方案,输出空行。本题有自原创 2021-07-27 18:00:14 · 99 阅读 · 0 评论 -
费解的开关or拉灯游戏(递推应用)
还记得刚学C的时候就遇到了这道题,那时候怎么也看不懂哈哈哈哈功夫不负有心人,这次就简单了。还是先放题目链接:https://www.acwing.com/problem/content/97/文章目录题意:思路:代码:题意:25盏灯排成一个5x5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。用数字“1”表示一盏开着的灯,用数字“0”表示关着的灯。下面这种状态1原创 2021-07-27 17:47:52 · 156 阅读 · 0 评论