自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 L2-010 排座位

使用并查集去推每两个人之间的关系。

2024-08-10 23:12:57 187

原创 L1-094 剪切粘贴

【代码】L1-094 剪切粘贴。

2024-08-10 23:07:40 221

原创 L1-003 个位数统计

【代码】L1-003 个位数统计。

2024-08-10 19:17:45 784

原创 L1-002 打印沙漏

可以发现,上半部分是一个倒三角形,下半部分是一个正三角形,两个三角形共用一个定点。表示的不是总行数,而是一个三角形的行数),那么每一个三角形部分有。,那么便可以根据此公式去计算最多可以打印多少行。数量也是一个等差数列,,以及最终会剩余多少个。

2024-08-10 18:53:37 735

原创 L1-001 Hello World

【代码】L1-001 Hello World。

2024-08-10 18:35:40 156

原创 数位dp

​ 数位dp往往都是这样的题型,给定一个闭区间lr,求这个区间中满足某种条件的数的总数。​ 考虑人类计数的方式,最朴素的计数就是从小到大开始依次加一。但我们发现对于位数比较多的数,这样的过程中有许多重复的部分。例如,从7000数到7999、从8000数到89994、和从9000数到9999的过程非常相似,它们都是后三位从000变到999,不一样的地方只有千位这一位,所以我们可以把这些过程归并起来,将这些过程中产生的计数答案也都存在一个通用的数组里。

2024-08-10 15:36:42 859

原创 区间dp

dpdpdp​ 区间dpdpdp就是在区间上进行动态规划,求解一段区间上的最优解。主要是通过合并小区间的 最优解进而得出整个大区间上最优解的dpdpdp算法。

2024-08-10 15:36:00 626

原创 树型dp

​ 树型dp即在树上进行dp。​ 树是无环图,顺序可以是从叶子到根节点,也可以从根到叶子节点。​ 一般树型dp的特征很明显,即状态可以表示为树中的节点,每个节点的状态可以由其子节点状态转移而来(从叶子到根的顺序),或是由其父亲节点转移而来(从根到叶节点的顺序),也可是两者结合。​ 找出状态和状态转移方程仍然是树型dp的关键。

2024-08-10 15:35:15 569

原创 线段树

​ 线段树,是一种 二叉搜索树。它将一段区间划分为若干 单位区间 ,每一个节点都储存着一个区间。它功能强大 ,支持区间求和,区间最大值,区间修改,单点修改等操作。线段树的思想和分治思想很相像。线段树的每一个节点都储存着一段区间LRL...R的信息,其中叶子节点LRL = RLR。它的大致思想是:将一段大区间平均地划分成222个小区间,每一个小区间都再平均分成222个更小区间……以此类推,直到每一个区间的LLL等于RRR(这样这个区间仅包含一个节点的信息,无法被划分)。

2024-08-10 15:34:19 867

原创 树桩数组

​ 可以解决大部分基于区间上的更新以及求和问题。

2024-08-10 00:49:35 751

原创 动态规划

​ 2.每一件物品都有无限个,其实并不是无限个,因为背包的容量是有限的,即每一件物品的最多数量为。​ 2.求这一个上下区间内的最大连续子段和,也就是找上下区间固定的所有子矩阵的最大连续和;行的元素和,那么便可以通过前缀和数组获得到任意上下区间中的元素和,也就变为了一维问题;件物品,在背包容量为(放入这件物品后剩余大小)时能取到的最大价值,两个取最大值;背包的基础上增加了每一件物品的数量,并且数量是指定的;数组中的最大值,便是此序列的最长上升子序列长度;的值,但是因为内层循环是从小到大的,所以在用到。

2024-08-09 16:36:30 1040

原创 并查集

​ 2.每当两个点连接时,都可以将其中一个点的。值,表示此两点的上一层相同——两个点为同一整体;​ 思路:在普通并查集的基础上还需要记录长度。​ 1.在普通并查集的基础上进行完善,如果。的大小需要为普通并查集的二倍,前半部分表示。值都相同,他们都在同一个整体中;​ 3.每次连接时,必须将。一定在一起,否则,有人说谎;​ 1.种类并查集,如果。过程中连接过得所有点的。在一起,两个内容都进行。​ 1.用一个数组。

2024-08-09 16:34:15 813

原创

​ 1.无向图的邻接矩阵一定是一个对称矩阵(即从矩阵的左上角到右下角的主对角线为轴,右上角的元与左下角相对应的元全都是相等的)。思路:将图的存储结构使用边集数组的形式表示,并将边集数组按权值从小到大排序,遍历边集数组,每次选取一条边并判断是否构成环路,不会构成环路则将其加入最小生成树,最终只会包含。​ 2.接下来,从最短距离开始,如果此路的起点和终点在一个整体中,便不对此边进行操作,否则,选择此条边,并更改。的顶点的时候,都要将符合条件的边进行遍历,当边较多的时候,该循环会带来较大的时间复杂度。

2024-08-09 16:32:28 1303

原创

​ 树(TreeTreeTree)是nnnn≧0n ≧ 0n≧0)个结点的有限集。n0n=0n0时称为空树。在任意一颗非空树中:有且仅有一个特定的称为根的结点。当n1n>1n1时,其余结点可分为mmmm0m > 0m0) 个互不相交的有限集T1T1T1T2T2T2T3T3T3……、TmTmTm,其中每个集合本身又是一棵树,并且称为根的子树。​ 二叉树是nnnn0n>=0n>=0。

2024-08-09 16:31:11 606

原创 搜索

BFS。

2024-08-09 16:25:49 995

原创 快速幂

这样不仅能把非常大的指数给不断变小,所需要执行的循环次数也变小,而最后表示的结果却一直不会变。​ 6.此时,发现指数又变成了一个奇数1,按照上面对指数为奇数的操作方法,应该抽出了一个底数的一次方,这里即为。,用一次(底数做平方操作)的操作减少了原本一半的循环量,特别是在幂特别大的时候效果非常好,例如。又能够在执行“缩指数”操作了,把指数缩小一半,底数执行平方操作。,尽量想办法把指数变小来,这里的指数为10。,底数只是做了一个小小的平方操作,而指数就从。​ 5.把指数缩小一半,底数执行平方操作,

2024-08-09 16:22:17 522

原创 数据结构基础

但是,数组最大的缺点就是我们的插入和删除时需要移动大量的元素,所以呢,大量的消耗时间,以及冗余度难以接收。​ 队列这种数据结构非常容易理解,就像我们平时去超市买东西,在收银台结账的时候需要排队,先去排队的就先结账出去,排在后面的就后结账,有其他人再要过来结账,必须排在队尾不能在队中间插队。​ 1.如果一个数先移动到最左边,再移动到最右边,那么最后输出的时候这个数一定是在最右边,也就是一个数最终出现在哪里,以他最后一次出现为准;​ 5.输出时,先输出队列中的元素,然后将。从原位置删除,为了便于获取。

2024-08-09 16:20:58 903

原创 排序算法

​ 3.然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放置较大值。​ 2.将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于分界值,而右边部分中各元素都大于或等于分界值。​ 思路:先把数组从中间分成前后两部分,然后分别对前后两部分进行排序,再将排好序的两部分数据合并在一起。​ 思路:将排序的区间分成若干个有跨度的子区间,对每一个子区间,进行插入排序,跨度不断。

2024-08-09 16:17:29 248

原创 字符串基础

当然只要不影响原字符串本身的符号(即不在原来的字符串中出现)都是可以的。算法是一种纯暴力的字符串匹配算法,比较符合人类自然思维方式的方法,即对源字符串和目标字符串逐个字符地进行比较。算法过程,不断的比对,直到在主串中找到目标串或者,遍历完目标串。表示第二行的字符串向右移动的格数,如果移动后,第二行的字符串与第一行字符串对应位置的字符全部相同,则。​ **字符串前缀:**符号串左部的任意子串(或者说是字符串的任意首部),在。​ **字符串后缀:**符号串右部的任意子串(或者说是字符串的任意尾部),在。

2024-08-09 16:11:45 958

原创 约数

​ 思路:将这个区间中的每一个数都根据唯一分解定理进行拆分,统计有多少个数的拆分结果为。是多少,这个方法结果正确,但是时间复杂度会比较高,所以借助二分,去找到结尾有。​ 1.根据唯一分解定理可知:每一个数都可以写为。,二分结果后,还需要判断它是否确实能拆分出。​ 5.用二分去查找,就必须做到:已知。的存在,那么这个数分解后一定有。​ 2.如果一个数的结尾有。每隔两个数就会最少出现一个,个数,最少出现一个),那么,,判断这些数可以拆分出几个。为例,因为每五个数才拆分出。,将每一个数都分解后,

2024-08-09 16:09:49 629

原创 日期+星期模拟

【代码】日期+星期模拟。

2024-08-09 16:03:36 351

原创 素数 判断 筛法

首先,0 和 1 不是素数,然后 i 从 2 开始判断 i 是不是 n 的因数,如果是因数,则直接返回 n 不是素数,否则,判断 i+1 是不是 n 的因数,直到 的时候,如果 i 仍然不是 n 的因数,那么 n 就是素数。欧拉筛法是将目前已经找到的每一个素数的 i 倍标记为合数,无论 i 是否是素数,同时,如果 i 本身就是素数的倍数,那么就去执行下一个 i。注:如果一个数 a 能够整除 i ,那么 i 和 a/i 一定满足:假设 i<=a/i , 那么 i<=√n && a/i>= √n。

2024-08-09 16:02:20 390

原创 二分算法

流程: ​ 首先需要估计答案的上下界,然后不断取区间中点进行验证(这就要求答案的验证应当简单可行),并通过验证结果不断更新答案区间,最终得到答案。不难看出,朴素的枚举验证时间复杂度是。特征: ​ 1.答案具有单调性 ​ 2.二分答案的问题往往有固定的问法,比如:令最大值最小(最小值最大),求满足条件的最大(小)值等。定义: 二分答案是指在答案具有单调性的前提下,利用二分的思想枚举答案,将求解问题转化为验证结果。

2024-08-09 15:57:09 195

原创 位运算

若 m 为 2 的 x 次方 : m 的二进制只有最高位为 1 ,其余全为 0 ,(m-1) 的二进制除最高位都为 1.奇数:二进制最后一位一定为 1 ​ 偶数:二进制最后一位一定为 0。按位异或:相同为 0,不同为 1。

2024-08-09 15:55:14 203

原创 最大公约数、最小公倍数

【代码】最大公约数、最小公倍数。

2024-08-09 15:51:38 105

原创 C语言:学生成绩管理系统

使用结构体数组存储数据,每个学生包含学号、姓名、C语言成绩、web成绩、高数成绩、英语成绩、总分,实现添加(初始化可连续添加),删除,查找,排序(根据各科成绩或总分排序),修改等功能。

2023-07-10 16:52:03 1876 1

原创 JAVA,String类(字符串类)方法总结

java类String来自于包java.lang。String类代表字符串。方法返回值 方法名(参数) 功能 char charAt(intindex) 返回指定索引处的char值。 int codePointAt(intindex) 返回指定索引处的字符(Unicode 代码点)。 int codePointBefore(intindex) ...

2022-03-17 01:12:23 360

原创 基于51单片机简易计算器LCD1602显示

这个学期进行了51单片机的学习,期末设计本来想用32做,但是组队的队友不会,所以就还是用51做了,功能有些简单,但满足一些基本的使用还是可以的。protues中有KEYPAD-SMALLCALC直接就是4*4的矩阵:​​​​​​​​​​​​​​做完之后才发现了,当时不知道,自己画了一个4*4的矩阵键盘1.protues仿真图2.源程序 注释我写...

2022-01-24 10:18:23 10352 19

原创 C/C++,俄罗斯方块

追忆童年先上效果:拿走,不用谢。#include <stdio.h>#include <string.h>#include <stdlib.h>#include <time.h>#include <conio.h>#include <windows.h> #ifdef _MSC_VER // M$的编译器要给予特殊照顾 #if _MSC_VER <= 1200 // VC6及...

2021-11-09 20:15:07 280 1

原创 C语言:会员管理系统

会员信息包括:会员号(6位数,唯一),姓名,身份证号,联系电话,状态(1表示正常,0表示挂失)。 会员管理包括:会员的添加、删除、修改(会员号不能修改)、挂失、查询、接触挂失。 先给大家看看效果:上代码:#include <stdio.h>#include <stdlib.h>#include <string.h>struct VIP //定义结构...

2021-11-09 13:35:04 9001 23

空空如也

空空如也

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

TA关注的人

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