- 博客(27)
- 收藏
- 关注
原创 算法训练.
这几个操作主要是操作二,把根里面的每一个元素遍历更新显然不符合时间复杂度要求,考虑如何把操作二变为单点修改;在这种情况下:对于操作一,把 ans 看作后面插入元素所需的减少量,那么插入的数字 x 可以用。当 a1 为原始数组中最后一个最小的数时,题目中的操作变得无意义。三分模版,三分和二分的原理相同,不同的是,三分对于已知的l和r,会有两个三等分点的值mid;计算点之间的距离,然后对图进行处理即可,这个数据规模较小,因此我使用了floyd,还有最小生成树和二份答案加并查集的写法;
2024-08-08 19:52:56
1186
原创 算法测试.
现在,尼克需要在公司中建立一个 "主管-同级 "关系的树状层次结构(也就是说,除了一名员工外,每名员工都有一名主管)。有N种豆子,这些豆子只能靠颜色来区分,每个豆子都有它的美味度;题目要求的是每种颜色豆子里面的美味度最小值的最大值;题目意思就是给你t个字符串,让你找出每个串与codeforces这个串有多少不同的字母;贪心,把m条关系按照代价排序,当x的大于y的,且y没有主管即可能让x当y的主管;运用map来存储最小的美味度,然后循环遍历找最大的美味度就好;的主管,但需支付额外费用。
2024-08-06 20:19:39
438
原创 算法训练,项目
二分答案,左边0,右边可以为最长的木头,但我直接赋值了一个很大的值,进行二分,随后写个check;内部遍历木头截取为mid木块的个数,要是>=k,满足要求,还可以继续往后面找,因为它是要求最大每段木头的长度,直至左边加一小于右边,最后输出左边;这是并查集的模版,并查集就是利用一个数组来标记他们,看他们是否是一起;模版题,用Dijkstra,但是我还是有点不理解Dijkstra;将发送的消息显示至list中。三、单源最短路径(弱化版)
2024-08-04 22:31:04
421
原创 算法训练.
这应该是个二分题,但是我用的是贪心暴力写的,思想就是循坏每次都让湿度最高的使用一次烘衣机,要是湿度最高的可以在自然条件下都能晒干就结束循环,这样内部我第一想法就是每次都排个降序;但是交上去发现后面数据超时了,也就是每次都排序太麻烦了,于是边思考到每次只需要把刚刚使用过烘衣机过后的湿度在插入进去,就只要一个for循环即可了这样就会快很多;随后也是AC了。
2024-08-01 15:34:17
403
原创 客户端发送图片至服务端
2.由客户端FileInputStream 向电脑a读取图片,BufferedOutputStream 再向电脑a写入图片 3.由服务端BufferedInputStream 从电脑b读取图片,FileOutputStream 再向电脑b 写入图片。2.侦听客户连接,返回socker(listener.accept())1.首先启动服务端Server 的服务,然后启动客户端Client。1.创建客户端套接字,指定服务器的地址和端口号。1.完成图片的复制,与客户端向服务端传输文字相差不大。
2024-07-30 19:26:54
223
原创 java 长连接,短连接
在Java中,使用Socket编程是实现长连接和短连接的常见方法。下面,我们将探讨如何在Java中实现这两种连接,并提供相应的代码示例。短连接在短连接中,客户端每次与服务器通信时都会建立一个新的连接,通信完成后立即关闭该连接。这种方式适用于请求频率不高的场景。
2024-07-26 01:37:35
1608
原创 项目的一些操作
要发送验证码需要用到邮箱的授权码:qq邮箱获取方式,打开qq邮箱点设置找到如下界面:然后获取授权码;导入依赖这个依赖有些都不一样,尽量按最新的来点击发送按钮后调用startCountdown即可。
2024-07-18 21:35:05
844
原创 Java Socket
TCP协议是面向连接、可靠的、有序的,以字节流的方式发送数据,基于TCP协议实现网络通信的类。1.服务器创建ServerSocket,循环调用accept()等待客户端连接。3.服务器端接受客户端请求,创建socket与该客户建立专线连接。1.创建Socket对象,指明需要连接的服务器的地址和端口号。4.建立连接的两个socket在一个单独的线程上对话。3.连接建立后,通过输入流读取客户端发送的请求消息。2.客户端创建一个socket并请求和服务器端连接。2.连接建立后,通过输出流向服务器发送请求消息。
2024-07-17 00:14:17
470
原创 MySQL的一些基本操作
MySQL提供的DESCRIBE语句可以查看数据表在所有字段或者指定字段的信息,包括字段名,字段类型等信息。若想避免上述的情况,在进行删除数据库操作时,使用IF EXISTS来进行规避待删除的数据库不存在报错情况。:这4个数据库是MySQL安装时自动创建的,建议不要随意的删除和修改这些数据库,避免造成服务器故障。在执行DROP DATABASE 删除数据库时,若待删除的数据库不存在,MySQL服务器会报错。删除数据库,清除数据库中的所有数据,回收为分配的存储空间。USE 数据库名称;
2024-07-14 15:58:17
1236
原创 7.9 JavaFx 的基础以及SceneBuilder
JavaFX是一个开源的下一代客户端应用平台,适用于基于Java构建的桌面、移动端和嵌入式系统。它是许多个人和公司的共同努力的成果,目的是为开发丰富的客户端应用提供一个现代、高效、功能齐全的工具包。
2024-07-09 21:29:55
1395
原创 7.4学习总结
abstract(抽象的)可以用来修饰类、方法此类不能实例化;抽象类中一定有构造器,便于子类对象实例化时调用;开发中,都会提供抽象类的子类让子类对象实例化,完成相关操作;抽象方法只有方法的声明没有方法体;包含抽象方法的类一定是抽象类;反之抽象类中可以没有抽象方法若子类没有重写了父类中所有的抽象方法,则此类也是一个抽象类,需要abstract来修饰;Java的多态是一种实现不同对象对同一消息的不同响应的机制,它可以让一个方法或者一个对象具有多种形态;
2024-07-04 22:26:49
1078
原创 面向对象系知识
一个方法包括方法的名称、主体、返回的数据类型// 方法名称 Slovepublic int Slove(){ // 返回值类型intreturn 1;// 主体部分将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
2024-07-02 22:05:15
422
原创 动态规划()
所处理的问题是一个多阶段决策问题,一般由初始状态开始,通过对中间阶段决策的选择,达到结束状态。这些决策形成了一个决策序列,同时确定了完成整个过程的一条活动路线(通常是求最优的活动路线)。如图所示。动态规划的设计都有着一定的模式,一般要经历以下几个步骤。(1)划分阶段:按照问题的时间或空间特征,把问题分为若干个阶段。在划分阶段时,注意划分后的阶段一定要是有序的或者是可排序的,否则问题就无法求解。(2)确定状态和状态变量:将问题发展到各个阶段时所处于的各种客观情况用不同的状态表示出来。
2024-02-28 22:48:46
482
原创 2-4 每日总结
题解:这道题的话还是比较容易但是还是有一点坑,首先你要是按着他这个每一步操作就会超时,在转大小写只需要执行最后一个转的即可,还有就是转换之后后面可能还会有改变的字符,所以每一次改变要用数组给存起来,记住最后转换大小写的位置,在这个位置上加1对后面的进行改变操作即可;题解:这道题运用结构体队列写,根据当前的最少步数尝试更新下一个能到达的楼层的最少步数,一步一步地更新,下一个楼层的最少步数一定是这一层的最少步数 +1。题解:这就是个简单的dfs,不过有个要注意的就是会出现重读的排列。
2024-02-04 21:31:49
365
1
原创 2-1 每日总结
并查集(Disjoint-Set)是一种可以动态维护若干个不重叠的集合,并支持合并与查询的数据结构,它名字的含义为“合并”、“查找”、“集合”,包括两种基本操作:1. 查找:查询一个元素属于哪个集合以及两个元素是否属于同一个集合;2. 合并:将两个集合合并成一个大集合。怎么实现并查集?在这篇博客里,我将从并查集最朴素的实现方法开始展示,并进行逐步优化。首先,为了具体实现并查集,我们需要定义集合的表示方法。在并查集中,我们采用代表元法,即为每个集合选择一个固定的元素,作为整个集合的“代表”。
2024-02-01 21:49:37
1097
1
原创 1-29 每日总结
树是由n(n>=0)个结点所构成的有限集合当n=0时,称为空树当n>0时,n个结点满足以下条件有且仅有一个称为根的结点其余结点可分为m个互不相交的有限集合,且每一个集合又构成一棵树,该树称为根节点的子树。对于一颗非空树,其中有且仅有一个没有前驱的结点,这个结点就是根节点,其余结点有且仅有一个前驱,但可以有多个后继。二叉树是一个特殊的树,每个结点最多只有两棵子树,且两棵子树也是二叉树。精确定义:二叉树是由n(n>=0)个结点所构成的有限集合。
2024-01-29 22:02:04
577
原创 1-28总结
第一行为两个正整数 N,M (1≤N,M≤50),下面 N 行是储藏室的构造,0 表示无障碍,1 表示有障碍,数字之间用一个空格隔开。接着一行有 4 个整数和 1 个大写字母,分别为起始点和目标点左上角网格的行与列,起始时的面对方向(东 E,南 S,西 W,北 N),数与数,数与字母之间均用一个空格隔开。题解:这个题的话采用结构体队列去写好一些,首先要值得注意的是机器人的形状是1.6米所以格子的障碍的周围四个点都不能走,把图转换为点图好一些还有就是方向的转变我才用的是用一个三维数组来标记点位以及方向;
2024-01-29 09:42:37
1253
原创 1-24 每日总结
起始点首先加入队列中,然后不断从队列中取出节点,检查它是否是目标节点。这样,队列中的节点总是按照它们距离起点的距离排序,先加入队列的节点总是先被取出来搜索。题解:这道题的话,是二叉树的遍历序列,知道后序和中序遍历的话,后序的最后一个节点是根结点,然后找到中序根结点的位置分成左子树和右子树,然后又对左子树和右子树进行同样的操作即可得出答案;首先,你会从起点开始,检查所有与它相邻的位置,也就是距离起点为1的位置, 然后,你会继续向外扩展,检查所有距离起点为2的位置,以此类推,直到找到出口。
2024-01-24 21:38:12
472
1
原创 1-22 每日总结
(Stack):是只允许在一端进行插入或删除的。首先栈是一种,但限定这种线性表只能在某一端进行插入和删除操作。简单来说就是先进后出或者后进先出的线性表,简称LIFO结构:线性表允许进行插入删除的那一端。:固定的,不允许进行插入和删除的另一端。
2024-01-22 19:53:23
1583
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人