- 2025-01-21C语言/C++——递归、递推、动态规划
什么是动态规划:给定一个问题,我们把他拆成一个个子问题,直到子问题可以直接解决。然后把子问题的答案保存起来,以减少重复计算。再根据子问题的答案反推,得出原问题解的一种方法递归的过程:"递"的过程是分解子问题的过程;(dfs是第归的一种) “归
- 2025-01-20[蓝桥杯 2023 省 B] 接龙数列
[蓝桥杯2023省B]接龙数列原题链接:P9242[蓝桥杯2023省B]接龙数列解题思路计算去掉的数量不好思考,可以先算出最长的接龙数列长度,与\(n\)相减即为答案。考虑使用动态规划计算。令\(dp_i\)为以\(i\)结尾的最长序列,枚举到\(a_i\)时:设\(a_i\)开头数字为\(p\)
- 2025-01-16生成函数
生成函数浅讲感觉这是一个非常牛逼的东西,写了点自己的感悟,可能讲得不是很清楚。生成函数的定义就比较牛,将数列\(\{a_i\}\)写成一个函数\(A(x)=\sum{a_ix^i}\)的形式叫做普通生成函数。此处的\(x^i\)没有实际意义,只是一个占位符。对于生成函数来说,绝大数多项式的运算法则
- 2025-01-16904 斐波那契数列3
//904斐波那契数列3.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。///*http://oj.daimayuan.top/course/22/problem/1083题目描述斐波那契数列指的是以下数列:1,1,2,3,5,8,...,从第三个数开始,每个数是前两个数的和。请问这个数列的前n项的和模109+
- 2025-01-15903 斐波那契数列2
//903斐波那契数列2.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。///*http://oj.daimayuan.top/course/22/problem/1045斐波那契数列指的是以下数列:1,1,2,3,5,8,...,从第三个数开始,每个数是前两个数的和。请问这个数列的第n项模109+7是多少。输入格
- 2025-01-15ABC243做题笔记
AtcoderBeginnerContest243D-MovesonBinaryTree题目大意有一棵极大的二叉树,有\(2^{10^{100}}-1\)个节点,给定一些操作,输出在线段树上遍历后的最后的节点的编号。解题思路如果直接模拟,显然数据太大,会远超出longlong的范围。有一个条件非常重要:最终的答案在long
- 2025-01-14排序算法专题总结
分治基础-二分查找:二分查找是一种高效的查找算法先找到数组的中间位置mid,判断(1)如果要找的数x==a[mid]找到了,mid就是位置(2)如果要找的教x>a[mid],说明要找的数在后一半,递归在后一半找(3)如果要找的数x<a[mid],说明要找的数在前一半,递归在前一半找在下标为left~right之间的
- 2025-01-09AcWing算法基础课打卡 | 788 逆序对的数量
学习C++从娃娃抓起!记录下AcWing刷过的题目,记录每一个瞬间。附上汇总贴:AcWing算法基础课打卡|汇总788逆序对的数量【题目描述】给定一个长度为nnn的整数数列,请你
- 2024-12-30【练习】完美数列:给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M <= m * p,则称这个数列是完美数列。
题目给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M<=m*p,则称这个数列是完美数列。现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数N和p,其中N(<=105)是输入的正整数的个数,p(<=109)是给
- 2024-12-29高等数学学习笔记 ☞ 数列与数列的极限
1. 数列基本概念1.定义:就是以正整数集(或它的有限子集)为定义域的一列有序的数。备注:①:数列中的每一个数叫做这个数列的项。②:排在第一位的数称为这个数列的第1项(通常也叫做首项),以此类推,排在第位的数称为这个数列的第项。2.一般形式:。记作:,其中称为该数列的通项,为正
- 2024-12-28矩阵快速幂——斐波那契数列进一步优化
快速幂优化矩阵幂、乘法对于一般的矩阵计算有\(A_{m,n}*B_{n,p}=C_{m,p}\),其中作为乘积因子的两个矩阵必须满足前因子列数与后因子行数相同积的行数等于前因子的行数,列数等于后因子的列数,任意的\(c_{i,j}\)可由定义的计算得出\(c_{i,j}=\sum_{k=0}^{n}a_{i,k}*b_{k,j}\)
- 2024-12-28C中如何实现斐波那契数列的迭代和递归算法?
在C语言中实现斐波那契数列的迭代和递归算法是学习编程和算法设计的重要部分。本文将详细介绍这两种方法的实现原理,并提供具体的代码示例。递归算法递归算法是通过函数调用自身来解决问题的一种方法。对于斐波那契数列,递归算法的实现基于其定义:第n项等于前两项之和。递归算法
- 2024-12-23大数据面试笔试宝典之算法面试
1.快速排序基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。算法描述:快速排序使用分治法来把一个串(list)分为两个子串(sub-lists)。具体算法描述如下:(1)从数列中
- 2024-12-22P1438 无聊的数列
链接:https://www.luogu.com.cn/problem/P1438题面:思路:差分+线段树。刚开始的想法是建立一个双tag线段树:basetag和addtag。然后传递的时候basetag就是l的基准,addtag不变。求的话就是求节点值。但是这样容易溢出。。。所以考虑差分:利用前缀和代替当前某一点的值:query(1,n)=
- 2024-12-22斐波那契查找算法
1,什么是斐波那契查找算法? 斐波那契查找算法(FibonacciSearch)是一种基于斐波那契数列的搜索算法。与二分查找算法相比,斐波那契查找更适用于没有直接索引访问的数据结构(如链表)。它通过使用斐波那契数列来逐步缩小搜索范围,从而找到目标元素的位置。斐波那契数列斐
- 2024-12-1838. 外观数列
题目链接解题思路:就是一个递归。弄清楚题目意思,n=1时,就返回1,然后n=2时,返回上一个结果,上一个结果是一个1,所以就是11,然后n=3,返回上一个结果,就是两个1,所以就是21代码classSolution{public:stringcountAndSay(intn){if(n==1){return"1
- 2024-12-17Python递归
1.首先是基础的:计算正整数阶层函数接受一个参数n,如果n等于0,则返回1否则,函数会调用自身,并将参数n-1传递给递归调用的函数,直到n等于0时停止递归。每次递归调用时,函数会将当前的n与递归调用的结果相乘,最终返回最终的结果。2.案例:斐波拉契数列首先先了解什么是斐波拉契数列?
- 2024-12-16动态规划在斐波那契数列中的应用与优化
文章目录前言
- 2024-12-15蓝桥杯数列求值(2019试题C)
【问题描述】 给定数列1,1,1,3,5,7,17……从第4项开始,每项都是前3项的和。求第20190324项的最后4位数字。【答案提交】 这是一道结果填空题,考生只需要计算出结果并提交即可。本题的结果为一个4位整数(提示:答案的千位不为0),在提交答案时只填写这个
- 2024-12-14用C语言输出 -- 斐波那契
首先,你要明白什么是斐波那契数列:斐波那契数列是指这样一个数列:1,1,2,3,5,8,13,21,34,55,89……这个数列从第3项开始,每一项都等于前两项之和。源代码如下:#include<stdio.h>intmain(){ inti,n,a=1,b=1,c; printf("输入显示个数\n"); scanf("%d",&n); for(i=1;i<=n;
- 2024-12-13三种基本常见的排序算法(冒泡,选择,插入)
一: 冒泡算法是一种简单的排序算法,以下是关于它的详细介绍: 基本原理: 重复遍历要排序的数列,每次比较相邻的两个元素,如果它们的顺序错误就将它们交换过来,直到整个数列都有序为止。 算法步骤 1: 比较相邻的元素。如果第一个比第二个大,就交换它们两个。2.:对每一
- 2024-12-12递推
一、什么是递推递推算法是一种通过已知信息逐步推导未知信息的算法设计技术。递推算法的核心思想是利用已经计算出的结果来推导新的结果,从而避免重复计算,提高效率。二、递推算法的分类递推算法可以分为顺推和逆推两种:顺推法:从已知条件出发,逐步推算出要解决的问题的方法。它通
- 2024-12-07接龙数列(第十四届蓝桥杯C++B组JAVA题解 动态规划)
对于一个长度为 KK 的整数数列:A1,A2,...,AK,我们称之为接龙数列当且仅当 Ai 的首位数字恰好等于 Ai−1 的末位数字(2≤i≤K)。例如 12,23,35,56,61,11是接龙数列;12,23,34,56不是接龙数列,因为 56的首位数字不等于 3434 的末位数字。所有长度为 11 的整数数列都
- 2024-12-06(每日一题)Fibonacci数列——<滑动窗⼝>
1.题⽬链接:WY22Fibonacci数列 2.题⽬描述:3.解法:算法思路:求斐波那契数列的过程中,判断⼀下:何时n会在两个fib数之间。 C++算法代码: #include<iostream>#include<cmath>usingnamespacestd;intmain(){intkey;cin>>key;inta=0,b=1
- 2024-12-04数列极限的证明方法(一)
这里写目录标题一、用定义证明极限1、ϵ−N\epsilon-N