自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 蓝桥杯数论通关系列(四)拓展欧几里得算法

给定a,b均为整数,一定存在一组整数x,y使得a,b满足a*x + b*y = gcd(a,b) = c。而拓展欧几里得算法就是求出这组整数(x,y)的算法。

2024-10-13 23:26:06 481 1

原创 蓝桥杯数论通关系列(三)埃氏筛和线性筛

埃氏筛和线性筛都是可以快速筛取素数的算法,可以极大提高判断素数的效率。

2024-10-12 17:15:00 517

原创 蓝桥杯数论通关系列(二)唯一分解定理与约数定理

唯一分解定理的内容就是任何一个自然数都可以分解成有限个素数相乘,并且20可以拆成5*4,而5是素数4不是,那么4就可以继续拆分成2*2,用唯一分解定理表示出来就是20=5^1 * 2^2。

2024-09-27 21:32:18 268

原创 蓝桥杯数论通关系列(一)LCM与GCD

如果理解有困难可以先看这篇文章:【数论中非常非常基础的知识 - CSDN App】LCM,即最小公倍数的计算。GCD,即最大公约数的计算。LCM与GCD可以称为数论中最重要,最基础的算法,可以称之为数论的根基。其中,GCD又要更重要一些,LCM基本都可以通过GCD得到,因此,本文主要讲述GCD算法。

2024-09-23 18:46:17 509

原创 数论中非常非常基础的知识

数论的讨论范围一般是全体自然数,即非负整数(0,1,2....)。在后续的介绍中没有特别说明都是指的非负整数。

2024-09-23 18:28:00 166

原创 洛谷P1541--乌龟棋

由于我比较懒,就把题目截屏下来了。

2024-09-20 19:51:39 177

原创 动态规划区间dp经典问题--切割回文

给定一个字符串,问对字符串s最少要切几刀,使其每个部分都为回文串。(一个字符是回文串)

2024-09-19 20:47:46 189

原创 差分数组及其应用

假设a数组是原数组,那么i位置的差分定义为X[i] = a[i] - a[i - 1];即i位置的差分定义为该位置的数减去前一个数。特别的,第一个位置的差分数组等于原数组。由于差分数组可以进行快速的O(1)区间修改,但如果要查询的话则要进行一遍O(n)复杂度的前缀和操作,因此适用于多次修改偶尔查询的情况。

2024-09-16 15:48:48 225

原创 动态规划经典题目--最长公共子串

给定两个字符串a,b,求他们的最长公共子序列(两个字符串里都有的部分,可以不连续)

2024-09-11 14:33:34 153

原创 动态规划经典问题--01背包

给定一个承重为V的背包和数量为n的物品,我们用重量和价值的二元组描述一个物品,第i种物品表示为(vi,wi),问背包物品不超重的情况下,得到的最大价值是多少。

2024-09-10 11:51:44 351

原创 前缀和进阶--树状数组极其应用

如果c[i]是一个树状数组,那么c[i]存储的值就是i向前lowbit(i)个数的和。与前缀和的区别在于前缀和s[i]是存储的前i个数的和。树状数组相比于前缀和数组牺牲获取区间和值的速度,换来了单点修改的速度,总的来说是值得的。

2024-09-09 18:42:57 385

原创 C++中STL对堆的模拟:set集合

在实际的编程或者比赛中实现一个堆十分麻烦,利用set容器可以方便的实现堆的大部分功能。

2024-08-04 10:34:25 448

原创 天梯赛L2-017人以群分(分数25)

/当n为奇数,假设是五,那么mid是二,恰好形成了二三的分组,高活跃度比低活跃度多一人。i++){//从一开始方便后面统计两拨人的数量。//排序注意sort是左闭右开。

2024-06-12 22:21:32 613

原创 天梯赛l2-004这是二叉搜索树吗

void bulid1(int l1, int r1, int l2, int r2){ //将二叉搜索树前序遍历转化成后序遍历的第一个函数,参数代表的是将前序遍历l1到r1的内容放到后序遍历的l2到r2之间。void bulid2(int l1, int r1, int l2, int r2){//将二叉搜索树前序遍历转化成后序遍历的第二个函数。//i代表的是第一个大于等于节点值的位置。//如果左右都是二叉搜索树。bool def1(int l, int r){ //判断是否是二叉搜索树的第一个函数。

2024-06-11 17:31:07 934

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除