- 博客(21)
- 收藏
- 关注
原创 压缩字符串——C++
实现一个算法来压缩一个字符串。压缩的要求如下:需要判断压缩能不能节省空间,仅在压缩后字符串比原字符串长度更短时进行压缩。压缩的格式是将连续相同字符替换为字符 + 数字形式,例如 "AAABCCDDDD" 变为 "A3BC2D4"。
2025-03-15 20:49:49
339
原创 k倍区间——C++
给定一个长度为 NN 的数列,A1,A2,⋯ANA1,A2,⋯AN,如果其中一段连续的子序列 Ai,Ai+1,⋯AjAi,Ai+1,⋯Aj ( i≤ji≤j ) 之和是 KK 的倍数,我们就称这个区间 [i,j][i,j] 是 K 倍区间。2.当两个数字取模k得到的数字相同时,那么,当他们相减后取模k得到的数字也是相同的( if( a%k==b%k ) then( (a-b)%k==0 ) )第一行包含两个整数 NN 和 KK( 1≤N,K≤1051≤N,K≤105 )。
2025-03-09 14:39:03
342
原创 Java 接口
2. 接口中的成员变量都是常量,接口的成员变量默认的修饰符为: public static final。6.接口是给类去实现使用的,非抽象类实现一个接口的时候,必须要把接口中的所有方法全部实现。3.接口中的方法都是抽象方法,默认的修饰符为:public abstract。2.抽象类实现一个接口的时候,可以实现也可以不实现接口中的方法。1.非抽象类实现一个接口时,必须要把接口中的所有方法全部实现。1.一个接口是可以继承多个接口的。5.接口是没有构造方法的。1.接口是一个特殊的类。4.接口不能创建对象。
2025-01-30 12:40:53
210
原创 【算法1-3】暴力枚举 P1149 [NOIP2008 提高组] 火柴棒等式
给你 n 根火柴棍,你可以拼出多少个形如 A+B=C 的等式?等式中的 A、B、C 是用火柴棍拼出的整数(若该数非零,则最高位不能是 0)。=B,则 A+B=C 与 B+A=C 视为不同的等式(A,B,C>=0);2个等式为 0+1=1 和 1+0=1。1. 加号与等号各自需要两根火柴棍;3. $n$ 根火柴棍必须全部用上。一个整数 $n(1<=n<=24)。一个整数,能拼成的不同等式的数目。
2025-01-16 15:04:30
157
原创 【算法1-3】暴力枚举 P3654 First Step (ファーストステップ)
我们浦之星女子学院的篮球场是一个 $R$ 行 $C$ 列的矩阵,其中堆满了各种学校的杂物 (用 `#` 表示),空地 (用 `.` 表示) 好像并不多的样子呢……我们 Aqours 现在已经一共有 $K$ 个队员了,要歌唱舞蹈起来的话,我们得排成一条 1* K 的直线,一个接一个地站在篮球场的空地上呢 (横竖均可)。**冷若冰霜的态度 有朝一日将会消失得无影无踪****一切的一切 尽是充满了未知数(该如何是好)****元気だよ元気をだしていくよ**希望不要发生**停电**什么的事故哦……
2025-01-16 11:54:38
583
原创 【算法1-2】排序 P1104 生日
cjf 君想调查学校 OI 组每个同学的生日,并按照年龄从大到小的顺序排序。但 cjf 君最近作业很多,没有时间,所以请你帮她排序。数据保证,1<n<100,1<=|s|<20。保证年月日实际存在,且年份 [1960,2020]。即 n 个生日从大到小同学的姓名。(如果有两个同学生日相同,输入靠后的同学先输出)第 2行至第 n+1 行分别是每人的姓名 s、出生年 y、月 m、日 d。第 1 行为 OI 组总人数 n;知识点:结构体数组排序、快排。输入共有 n + 1行,
2025-01-13 16:02:12
224
原创 Visual Studio 中使用万能头文件 #include “bits/stdc++.h“
在......\VC\Tools\MSVC\14.35.32215\include文件夹下找到bits文件夹,如果没有就自己创建一个,在bits文件夹下创建stdc++.h文件。在文件夹下>右键新建文件,新建一个名为stdc++的记事本文件,再将后缀名改为.h。1. 创建<bits/stdc++.h>头文件。2. 添加stdc++.h源码。
2025-01-12 17:44:30
418
原创 vector 容器
如果是容器,则需要访问指针 V1.insert(V1.begin() + 7, V2.begin() + 1, V2.begin() + 4)如果是数组,则访问下标,直接类似于 V1.insert(V1.begin() + 7, b + 1, b + 5) 即可。//将v1拷贝给v4。( 注意:左闭右开!
2025-01-12 17:32:04
1792
原创 二分查找左边界
(1)二分查找,如果a[mid]==x,还要向左看,判断是否还是x。(2)找左边界的本质:找数组中第一个大于等于x元素的位置。(3)找到位置L之后,要判断a[L]==x,(注意:如果有负数,找0,要判断L在下标内)
2024-01-31 12:06:32
248
原创 二分查找的实现
先找到数组中间位置mid,判断(1)如果要找的数x==a[mid],找到了,mid就是位置(2)如果要找的数x>a[mid],说明要找的数在后一半,递归在后一半找(3)如果要找的数x
2024-01-30 11:40:31
121
原创 高精度减法
第一步:判断正负,如果s1比s2对应的整数小,结果为负,交换s1,s2。第二步:将两个字符串,逆序存入两个整数输出测试。第三步:从左向右,逐位相减,不够借位。第四步:逆序输出结果。
2024-01-29 14:42:28
110
原创 高精度加法
第二步:将两个高精度整数逆序存入ab两个整数组。第三步:从左向右,逐位求和,结果存入c数组。第一步:用string读入高精度整数。第四步:逆序输出结果。
2024-01-29 10:45:23
122
原创 string的使用
/C++ string的头文件// c++string不能用printf输出//C++ string为我们提供一个访问字符串的接口: data(),c_str()
2024-01-26 20:26:04
1597
原创 顺序表基本运算的实现
param要初始化的顺序表@param初始化时要添加的元素内容数组@param初始化时添加的元素个数插入数据元素将数据元素 a 插入到顺序表 { a_1,a_2,a_3,...,a_n }下标为 i 的位置--下标为 i 及下标为 i 以后的所有数据元素后移--下表 i 的位置放入元素 a注意:1、插入元素后的线性表长度变为 n + 12、插入元素后,最后一个元素的下标变为 n3、C语言数组实现时,顺序表不能超过它的最大长度。
2023-10-21 14:41:23
28
原创 顺序存储结构的线性表--顺序表
即: *( datas + 0 ) , *( datas + 1 ) , *( datas + 2 ), ... ,*( datas + n - 1 ) // 指针+下标。第 n 个元素的内存地址 = 数组的内存地址 + 第 n 个元素的下标 n-1。线性表的顺序存储结构,指的是用一段地址连续的存储单元依次。2、线性表的最大存储容量:数组长度MAX_SIZE。1、存储空间的起始位置:数组datas的存储位置。3、线性表的当前长度:length。1、定义线性表的最大存储空间。
2023-10-21 14:40:18
29
原创 线性表抽象数据类型
素在表中的下标,不存在返回-1。DeleteElement(*List , i ,*elem ) 删除线性表 List 中第 i 个元素,并返回删除元素的指针 e。InsertElement ( *List , i , elem ) 在线性表 List 的 i 下标处插入元素 elem。GetElement ( *List , i ,*elem ) 将线性表L中的第 i 个位置的元素返回给elem。1、线性表的数据元素是一个集合 { a_1,a_2,a_3,...,a_n },
2023-10-21 14:39:50
19
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人