自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 4.25java项目小结

完成了头像的显示,能将头像设置圆形,从数据库传输头像,客户端接收并在界面上展示,并能从文件选择图片。

2024-04-25 23:10:12 134

原创 4.23java项目小结

画好了聊天主界面,实现了登录成功直接从数据库传输用户信息并在界面展示,设置了邮箱,账号信息不能修改,完成了用户编辑资料修改密码的功能。

2024-04-23 23:16:51 241

原创 4.21java聊天室项目小结

基本完成了用户的登录注册功能,可以实现用户账号登录和邮箱登录功能,忘记密码通过邮箱发送验证码找回,注册账号功能,并传递给客户端更新数据库的表内容。明后两天尽量画好登录界面,实现用户资料编辑功能,可以修改昵称,生日,头像,个性标签等功能,并能在界面中展示。忘记密码功能同理,通过判断验证码是否正确,然后根据邮箱在数据库内进行查找,然后修改数据库的密码。注册成功后密码进行MD5加密并通过服务器保存到数据库。

2024-04-21 22:36:11 251

原创 4.18 java项目小结1

java项目登录界面实现了服务端与客户端的连接,实现了客户端传递输入的账号和密码,服务端从数据库查询,并反馈给客户端。明后两天尽量完成实现邮箱发送验证码注册功能,邮箱发送验证码登录功能,密码的MD5加密,忘记密码通过邮箱发送验证码找回功能。目前我感觉,在项目中的应用可以在注册的时候,限制密码的长度,符号的类型等。作用二:在一段文本中查找满足要求的内容。实现了用正则表达式对密码的格式进行判断。作用一:校验字符串是否满足规则。预定义字符:(只匹配一个字符)字符类:(只匹配一个字符)

2024-04-18 23:13:02 158

原创 多线程,网络编程

有了多线程,我们就可以让程序同时做多件事情。

2024-04-14 10:00:00 1737

原创 io流的学习

存储和读取数据的解决方案流:像水流一样传输数据。

2024-04-11 20:20:25 638

原创 MySQL数据库(基础篇)

概述:指从多张表中查询数据笛卡尔积:笛卡尔乘积是指在数学中,两个集合A集合 和 B集合的所有组合情况。(在多表查询时,需要消除无效的笛卡尔积)

2024-04-09 21:41:45 1088

原创 jdbc(数据库连接)

数据库连接池是个容器,负责分配、管理数据库连接(Connection)它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏资源重用提升系统响应速度避免数据库连接遗漏。

2024-04-07 23:43:06 625

原创 线段树练习

如题,已知一个数列,你需要进行下面两种操作:将某一个数加上 x求出某区间每一个数的和第一行包含两个正整数 n,m,分别表示该数列数字的个数和操作的总个数。第二行包含 n 个用空格分隔的整数,其中第 i 个数字表示数列第 i 项的初始值。1 x k含义:将第 x 个数加上 k2 x y含义:输出区间 [x,y] 内每个数的和输出包含若干行整数,即为所有操作 22 的结果。5 51 5 4 2 31 1 32 2 51 3 -11 4 22 1 41416【数据范围】

2024-04-04 23:17:34 796

原创 java学习3

多态是面向对象三大特征之一,是对象的多种形态多态的前提1.有继承/实现关系2.有父类引用指向子类对象3.有方法的重写多态有什么好处?使用父类型作为参数,可以接收所有子类对象,体现多态的拓展性与遍历多态变量编译看左边,运行也看左边,多态方法编译看左边,运行看右边。

2024-04-03 00:59:01 745

原创 本学期学习计划

短期任务准备蓝桥杯,学习java,完成实验室题目的任务,完成java项目,学完java集合,学习javafx,参加每周的cf比赛。平时在实验室看b站教程,水课看疯狂java讲义书。MySQl,学习io流,b站学习别人如何写项目,准备蓝桥杯,每天看或写1-2道蓝桥杯原题,准备蓝桥杯,每天看或写1-2道蓝桥杯原题,学完异常处理,泛型,参加每周的cf比赛。线程,网络编程,尝试写项目,完成java项目并完善,后续就跟着实验室的安排来。

2024-03-31 23:59:46 334 2

原创 java学习2

工具类的方法一般操作某个数组等,比如遍历打印数组,求平均值等,这些方法是公用在类里面的,所有用static修饰的。

2024-03-31 19:23:03 507

原创 字符串

两者比较的话,直接赋值法会更加节省空间,因为如果出现多个相同字符串,直接赋值法只需要开辟一个空间,而使用new的话,有多少个就需要开辟多少个对应的空间。2.equalsIgnoreCase方法属于string类里面的一个方法用于比较字符串(忽略大小写)substring 返回的是截取的字符串而不是对原字符串进行截取操作。1.equals方法属于string类里面的一个方法用于比较字符串(区分大小写)4.字符串的长度:字符串对象.length();两个参数为字符串中要转换的子字符和转换后的字符。

2024-03-29 01:05:03 539

原创 java 面向对象入门

下面是创建了一个Goods类,里面的成员变量有:1.编号(id),2.名称(name)3.价格(price),4数量(count)类就像一个设计图一下,而对象就是一个根据类来创建的一个实体,类是不占用内存的,对象是占用内存的。意思是创建了一个对象商品,编号为001,商品名字是保温杯,价格为233.9,数量为100个。下面的主类里面创建了三个商品对象并进行初始化,循环打印商品的所以成员变量。填写名称一般是名词,要知道大概是什么的名称,首字母一般大写。一般写两个,一个是空参构造,另一个是带全部参数的构造,(

2024-03-26 23:11:54 384

原创 CF936 div2 B. Maximum Sum

在一次操作中,您选择数组a的任意连续子数组(可能为空),并将此子数组的总和插入数组中的任意位置。需要注意的是,初始的数可能全是负数,而且负数和的绝对值可能大于1e9+7,需要考虑对负数取余数的情况。每个测试用例的第一行包含两个整数n和k(1≤n,k≤2⋅10^5) — 数组a的长度和操作次数。对于每个测试用例,输出一个整数 — 在k次操作后可以获得的数组的最大总和,模10^9+7。提醒:数字x模p的余数是最小的非负y,使得存在整数q使得x=p⋅q+y。您的任务是找到在k次操作后数组的最大可能总和。

2024-03-25 00:12:27 620

原创 CF935

C. Left and Right Houses题目描述在Letovo村庄里有n栋房子。村民们决定修建一条大街,将村庄分为左右两侧。每位居民都希望住在街道的左侧或右侧,这可以用序列a1,a2,…,an来描述,其中如果第j栋房子的居民想住在街道的左侧,则aj=0;否则,aj=1。道路将穿过两栋房子。它左侧的房子将被宣布为左侧,右侧的房子将被宣布为右侧。更正式地,让道路穿过第i和第i+1栋房子。然后在位置1到i之间的房子将位于街道的左侧,在位置i+1到n之间的房子将位于右侧。道路也可能在第一栋房子之

2024-03-21 20:56:52 792

原创 Pots

行分别描述一个操作。如果有多个最短长度的操作序列,输出其中任意一个。如果无法达到期望结果,输出文件的第一行必须包含单词 ‘本题有3总操作,但操作的对象不同,一共有6种不同操作,题目求最短显然用bfs搜索更好一点。我们在找到终点还要回溯其走过的点,这里可以在结构体里面增加一个变量记录是由哪个点来的。编写一个程序,找出能使其中一个罐子中恰好有。这些数都在 1 到 100 的范围内,且。输出的第一行必须包含操作序列的长度。升水的最短操作序列。

2024-03-19 22:27:22 236

原创 走迷宫1

【代码】走迷宫1。

2024-03-07 23:31:17 179

原创 EasyX的学习2

BeginBatchDraw()和EndBatchDraw()(所有的绘图代码必须放在begin和end之间)两个参数 1.代表获取位置,2。代表类型(EX_MOUSE代表鼠标;EX_KEY代表键盘)定义一个变量名为msg的ExMessage结构体变量并初始化为0。使用鼠标操作需要在窗口函数initgraph第三个参数加上。根据键盘上下左右移动小球,也可以修改小球的移动速度。msg.message是结构体内的一个成员。上面代码可以根据键盘上下左右移动一个小球。可以设置鼠标左右键执行不同的操作。

2024-03-05 22:27:03 419

原创 洛谷 P1439 最长公共子序列

最开始基本解法是二维数组O(n^2)解法显然过不了,这里需要把题目转换成求递增子序列,递增子序列需要一个贪心的优化。,n 的两个排列 P1​ 和 P2​ ,求它们的最长公共子序列。接下来两行,每行为 n 个数,为自然数 1,2,…一个数,即最长公共子序列的长度。第一行是一个数 n。

2024-03-03 22:27:14 179

原创 洛谷 P1091 合唱队形

本题考察的是动态规划中递增子序列问题,dp[ i ]表示以下标为i结尾的递增子序列的元素数量,递推公式是dp[ i ]=max(dp[ i ], dp[ j ]+1);第二行有 n 个整数,用空格分隔,第 i 个整数 ti​(130≤ti​≤230)是第 i 位同学的身高(厘米)。你的任务是,已知所有 n 位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。n 位同学站成一排,音乐老师要请其中的 n−k 位同学出列,使得剩下的 k 位同学排成合唱队形。

2024-02-29 22:40:22 252

原创 洛谷 P1481 魔族密码

如果在一个由一个词或多个词组成的表中,除了最后一个以外,每个单词都被其后的一个单词所包含,即前一个单词是后一个单词的前缀,则称词表为一个词链。我们现在要解决的是魔族的密码问题(自我陶醉:搞不好魔族里面还会有人用密码给我和菜虫写情书咧,哦活活,当然是给我的比较多拉*^_^*)。这些文件的格式是,第一行为单词表中的单词数 N(1≤N≤2000),下面每一行有一个单词,按字典顺序排列,中间也没有重复的单词。现在你要做的就是在一个给定的单词表中取出一些词,组成最长的词链,就是包含单词数最多的词链。

2024-02-23 20:28:27 389

原创 CF1200E Compress Words

合并两个单词的时候,要找到最大的 i(i≥0),满足第一个单词的长度为 i 的后缀和第二个单词长度为 i 的前缀相等,然后把第二个单词第 i 位以后的部分接到第一个单词后面。现在我们想求字串 s3s4的hash值,不难得出为s3∗Base+s4,并且从上面观察,如果看hash[4]−hash[2]*Base^2,至此,通过对上例的归纳,可以得出如下的公式。本题写了3~4个小时,看了题解,虽说花费的时间多,但更进一步了解了进制哈希,双哈希和O(1)方式求子串哈希的方法,还是有收获的。思路和坑点讲完,上代码。

2024-02-22 22:15:00 1500

原创 洛谷 P3879 阅读理解

本题可以采用链地址法解决哈希冲突,采用二维结构体储存哈希值,结构体竖直方向为N篇阅读理解,水平方向为每个单词字符串转换数字映射到的位置采用链表储存,对于m个单词在n篇阅读理解里面查找就是通过下标查找,判断能否找到。对于每个生词输出一行,统计其在哪几篇短文中出现过,并按从小到大输出短文的序号,序号不应有重复,序号之间用一个空格隔开(注意第一个序号的前面和最后一个序号的后面不应有空格)。每行的开头是一个整数 L ,表示这篇短文由 L 个单词组成。对于 100% 的数据,1≤M≤10^4,1≤N≤10^3。

2024-02-21 22:10:11 332

原创 Easyx的学习1

使用easys的相关函数需要包含头文件#include<easyx.h>或#include<graphics.h>(#include<graphics.h>包含了<easyx.h>和一些不推荐使用的函数)4.

2024-02-20 20:54:15 585

原创 洛谷 P8630 [蓝桥杯 2015 国 B] 密文搜索

这题可以使用字符串哈希,因为不用考虑字符顺序,可以先统计一个字符串中每个字符出现的次数,然后使用使用进制哈希将字符串转换为数字表示,具体操作看代码;输入第一行:一个字符串 s,全部由小写字母组成,长度小于 1024×1024。紧接着一行是一个整数 n, 表示以下有 n 行密码,1≤n≤1000。第一个密码匹配了 3 次,第二个密码匹配了 1 次,一共 4 次。一个整数,表示每行密码的所有排列在 s 中匹配次数的总和。紧接着是 n 行字符串,都是小写字母组成,长度都为 8。蓝桥杯 2015 年第六届国赛。

2024-02-18 22:26:37 466

原创 洛谷 P2580 于是他错误的点名开始了

这题可以使用字符串进制哈希来解决,每一个字符串可以转换为一个数字来表示,本题中首先将n个字符串转换为数字并存在一个数组里面,然后输入m个字符串转换为数字如果能够在前n个字符串转换的数组里面找到且是第一次输出OK,如果能找到但不是第一次则输出。接下来 n 行,每行一个字符串表示其名字(互不相同,且只含小写字母,长度不超过 50)。接下来 m 行,每行一个字符串表示教练报的名字(只含小写字母,且长度不超过 50)。第 n+2 行一个整数 m,表示教练报的名字个数。,如果该名字正确但不是第一次出现,输出。

2024-02-16 21:30:19 332

原创 字符串哈希

核心思想就是将字符串看成一个固定的base进制数,将字符串每一个字符看做成每一位数,那么这个数就可以看成这个字符串的哈希值。哈希公式就类型一个数字1234,他表示为1*10^3+2*10^2+3*10^1+4*10^0,只不过是把操作对象改成了字符,字符的ASCII值对应每一位数的数字。假设有一个 S=s1s2s3s4s5的字符串,根据定义,获取其 Hash值如下(我们先忽略mod,方便理解):hash[0]=0hash[1]=s1。

2024-02-15 21:45:00 522

原创 Bellman-Ford算法——解决负权边

Bellman-ford算法时间复杂度为O(n*m)虽然比dijkstra算法稍微慢点但可以解决带有负权边的图,核心代码只有4行上面代码中,外层循环一共循环了n-1次(n为顶点数),内层循环了m次(m为边的个数),即枚举了每一条边,dis数组和Dijkstra算法一样,用来记录源点到其余各个顶点的最短路径。u,v,w三个数组记录边的信息。表示第i条边由顶点u[ i ]到顶点v[ i ]的权值为w[ i ]。

2024-02-06 19:49:28 392

原创 dijkstra算法堆优化

我们知道dijkstra算法的时间复杂度是O(N^2),外层循环松弛的次数,N个点要松弛N-1次为O(N),而内层循环是遍历dis数组每次找到距离顶点最小的点,时间复杂度也是O(N),堆优化就是优化这一过程降为O(logN),如果M(边)远小于N^2储存图用邻接表,这样优化的总时间复杂度为(N+M)logN,堆优化需要3个数组:1.dis数组记录单源顶点到其余点的距离2.h数组是一个最小堆,(注意:h数组不是按照编号大小来建立最小堆的,而是按照顶点在数组dis中对应的值来建立这个最小堆)

2024-02-05 20:16:36 645

原创 洛谷 P1550 Watering Hole G

他决定将水引入到他的 n 个农场。连接 i 号田与 j 号田需要 Pi,j​(Pj,i​=Pi,j​)元。最小生成树问题,这题不一样的就是可能存在连通两个田的成本大于挖井的成本,只需要在邻接矩阵输入的时候取两者较小值然后就不会存在连通两个田的成本大于挖井的成本的情况,这样就只需要挖一个井,操作起来相对简单。接下来 n 行,每行 n 个整数,第 i 行的第 j 个数表示连接 i 号田和 j 号田需要的费用 Pi,j​。对于 100% 的数据,1≤n≤300,1≤Wi​≤10^5,0≤Pi,j​≤10^5。

2024-02-04 21:13:01 245

原创 洛谷 P1359 租用游艇

长江游艇俱乐部在长江上设置了 n 个游艇出租站 1,2,⋯,n。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站 i 到游艇出租站 j 之间的租金为 r(i,j)(1≤i<j≤n)。试设计一个算法,计算出从游艇出租站 1 到游艇出租站 n 所需的最少租金。第一行中有一个正整数 n,表示有 n 个游艇出租站。接下来的 n−1 行是一个半矩阵 r(i,j)(1≤i<j≤n)。输出计算出的从游艇出租站 1 到游艇出租站 n 所需的最少租金。

2024-02-04 21:02:03 147

原创 普里姆(prim)和克鲁斯卡尔(Kruskal)

坑点:建立结点数量n的最小生成树需要n-1,n个结点中建立k个最小生成树需要n-k条边,n个结点的图中两种情况无法建成k个最小生成树 1.m<n-k,2.n<k(1.所有边的数量全使用都无法构成k个最小生成树,2.结点的总数比要建造的最小生成树的数量小)如果你买了第 I 样东西,再买第 J 样,那么就可以只花 KI,J​ 元,更巧的是,KI,J​ 竟然等于 KJ,I​。对于 100% 的数据,1≤N≤10^3,1≤M≤10^4,1≤K≤10,1≤X,Y≤N,0≤L<10^4。

2024-02-02 20:14:10 754

原创 拓扑排序算法

AOV网的点和边有向图且不会形成回路在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,称为AOV网在图论中由一个的顶点组成的序列中,当且仅当满足以下条件时,称为该图的一个拓扑排序:1.每个顶点出现且只出现一次2.若顶点A在序列中排在顶点B的前面,则在图中不存在顶点B到顶点A的路径拓扑排序的实现一般用邻接表来储存图,实现的时间复杂度为O(n+e),一般还需要用一个栈来储存入度为0的点。个人从题目中发现拓扑排序有点递推的意思。

2024-02-01 22:46:25 711

原创 洛谷 P3366 【模板】最小生成树

如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz。第一行包含两个整数 N,M,表示该图共有 N 个结点和 M 条无向边。接下来 M 行每行包含三个整数Xi​,Yi​,Zi​,表示有一条长度为 Zi​ 的无向边连接结点 Xi​,Yi​。如果该图连通,则输出一个整数表示最小生成树的各边的长度之和。如果该图不连通则输出orz。4 51 2 21 3 21 4 32 3 43 4 37说明/提示数据规模:对于 20% 的数据,N≤5,M≤20。

2024-01-31 22:25:14 617

原创 图的学习

图是由顶点的有穷非空集合和顶点之间的边的集合组成的,G表示,V是图G中顶点的集合,E是图G中边的集合。

2024-01-30 22:21:33 622

原创 23寒假预备役第二次测试

最开始我的思路是判断x能否直接整除n,如果能平衡就是x/n,如果不能就暴力凑,例如10不能整除3,最开始拆成p=3 3,q=4,前面两个3分别减一,减少的凑到4变成2,2,6,直到q%p==0,然而数据较大,一旦x为素数最差情况就是O(t*x),显然不行。最开始我思路是bfs列举4个方向,每个方向一直走到底,第一次到这个点将这个点入队,遇到冰块,sum++,显然这样会出现很多重复的,后来想到可以用一个二维数组标记到的每一个冰块为1,这样就可以起到去重的作用,最后再统计总和。在这个问题中,我们的国王很笨。

2024-01-29 19:50:57 1055

原创 并查集的学习

并查集可以理解为数学上的集合并查集一般以树这种数据结构来储存每一个元素,判断两个元素是否为同一个集合,通常判断两个元素所在的树的根结点是否相同,因为比较两个元素是否是同一个树要向上查找根结点,所以一般用双亲表示法,储存在数组中并查集中集合一般以根结点表示所以查找集合等价于找根结点。

2024-01-28 22:18:19 324

原创 寒假预备役第一次测试

首先我们知道鲍勃希望操作后的数组最小,所以说鲍勃肯定优先将最大的数操作变成相反数且鲍勃能操作几个数就全都操作,爱丽丝可以去除数组中的数,然而具体去除几个数不知道,但知道的是要想鲍勃操作后数组最大,去除的肯定优先去除最大的数,具体去除几个,直接暴力比较一下取最大值,这里可以前缀和一下,就是爱丽丝去除某个元素的所有和,方便计算。在第三个示例中,瓦西亚可以,例如,创建数组(5,4,3,2,1)。然后总差异将为D=|1−5|+|2−4|+|3−3|+|4−2|+|5−1|=4+2+0+2+4=12。

2024-01-26 13:03:05 584

原创 洛谷 P1032 字串变换

已知有两个字串A,B及一组字串变换的规则(至多6个规则),形如:A1​→B1​。A2​→B2​。规则的含义为:在A中的子串A1​可以变换为B1​,A2​可以变换为 B2​⋯。例如:A=abcd,B=xyz,

2024-01-25 14:23:21 495

空空如也

空空如也

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

TA关注的人

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