自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Codeforces Round 960 (Div. 2)(A~C)题

可以确定x和y这两个位置一定是1且x+1和y-1一定是-1,不难想到可以把y到x之间全填1,两边1和-1交叉填即可.我们发现从第二次操作开始,每个长度 >= 2的数字块都会向右滑动一位,而第一次操作出现的长度为1的数字块都会被覆盖掉。通过模拟可知:第一次操作后,数组中出若干个数字块,且呈升序,其中注意到第一次操作后会有个别的长度为1的数字块.如果最大值有奇数个显然Alice赢,否则只需要看排序后是否存在n−i+1是否为奇数且ai>ai−1即可。

2024-07-21 10:44:13 153

原创 【无标题】

给定n朵花,每秒有风吹过来使得hi > hi+1 的花高度减一,问经过多长时间所有花的高度降低为0。那么对于第i朵花,如果其高度hi<=hi+1则其高度降低为零用时为hi+1+1;如果其高度hi>hi+1,那么第i朵花高度降低为零的时间为max(hi+1+1,hi)。每次可以给k个硬币添加1个硬币,但是代价是k+1的,要求最后需要最小多少的代价可以将其变成一个非减数列。题目要我们上传nGB的内容,但是每k秒我们最多上传1GB,所以只要求出前(n-1)GB上传的时间,然后在加上上传最后1GB所用的1秒。

2024-07-18 21:27:10 248

原创 Codeforces Round 958 (Div. 2)(A~C)题

要构造的数组严格递增,那么最后一个位置一定可以放n,为了保证严格单调递增,直接低位枚举n的二进制位即可,假设当前枚举到第i位时n的二进制位为1,那么把n-(1<<i)加入答案即可。首先对全 0 连续段进行操作使它们均变为一个 0,先尽可能减少 0 的个数,然后判断是否有 c1>c0𝑐1>𝑐0 即可.最优的策略是每次操作分出 k−1𝑘−1 个 1,然后考虑最后是否会剩下一个单独的 1。

2024-07-16 15:52:08 232

原创 Codeforces Round 957 (Div. 3)(A~D题)

优先增加最小的数,它们的乘积会是最优,假如只有两个数a和b,b>a,那么a + 1,就增加一份b。2: 如果当前在陆地上,从当前能跳的最右边的距离往左找,找到第一个W(能到达的最右边的water),如果k <= 0或者没找到W, 无解。(跳到下一个L位置)贪心思想,最长的片段作为基础片段,其他长度的片段都要经历分解+组合两种操作(除长度为1的片段外),直接计数即可.优先让满足f条件的数早出现(越大越早),让满足g条件的数晚出现(越小越早)3: 如果当前在水里(W),k <= 0或者下一个字母是C,无解。

2024-07-14 23:28:52 156

原创 Codeforces Round 954 (Div. 3)(A~D题)

一定有一个两位数,因此我们可以枚举这个两位数,然后取最小值。接下来考虑如何取最小值:若存在数字0,那么可以通过都用乘法来将最终结果变成0,此外,若存在数字1,可以通过乘法将1消掉。除此之外的数,都是加法更加小。c以及ind数组进行排序,通过贪心可以知道,我们需要按照索引从小到大的修改字符串,同时一个位置只会有一个字母与之对应,因此只需要同时按照字符串c从小到大修改即可.若一个数比周围四个数都大,那么最终会变成四个数当中最大的哪一个,我们只要将四周的数的最大值找到,然后把这个数变成相邻的最大值.

2024-07-11 21:59:26 409

原创 Codeforces Round #956 (Div. 2) and ByteRace 2024

关键的充要条件是 𝑎,𝑏 的每一行/列的和模 3 后相等。证明的话,首先要想到 2×2 的操作是可以完成所有大小的子矩阵操作的,手模一下可以发现是对的。首先如果元素不同直接输出"NO",如果相同,那么我们可以通过求出个两个序列的转换成相同序列的次数,也就是会改变 𝑎,𝑏 逆序对的数量,并且同时改变其数量奇偶性,所以怎么只要保证两次序列的奇偶性相同即可,但我们可以进行优化,将只对一个序列进行操作,只要将序列B映射到序列A上,那么问题就变成了只需要求映射后的序列B的逆序对个数即可.直接输出1~n即可.

2024-07-09 12:20:48 412

原创 Educational Codeforces Round 167 (Rated for Div. 2)(A~C)题解

首先如果 ai,bi不同,则直接把评分加到较大的那个数上去一定是最优的,这个分析一下会发现对于所有情形成立。分类讨论一下加入 X 个 1 和 Y 个 −1 的影响即可,每次先把两个数做到平均一定是最优的。由于 a 是肯定全部要出现的,因此只要找出在 a 中最多能匹配上 b 中的多少个字符。不难发现 b 中匹配的一定是连续的一段,因此可以暴力枚举区间然后暴力检验。在此基础上可以先得到两部电影的评分,分别记为 x, y,然后考虑将剩下的。最终𝑥一定会相等,我们考虑直接到下面接住他。

2024-07-07 22:11:09 333

原创 背包问题(一)

解析:一开始没有看数据范围,直接当01背包直接写了,结果最后4个测试点RE,一看到数据范围就老实了,1e9的数据,数组直接炸,所以不能直接使用一维的01背包.看了一下题解,部分人是通过极差对数据进行分类,按照300进行分开,使用贪心和dp一起做.

2024-07-04 23:42:41 376

原创 java反射

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.

2024-07-02 23:32:08 593

原创 6.20学习总结

当前一个数k在集合m里,由题可知2k+1,3k+1都在集合里,每一个数又可以延伸出两个数到集合里,每判断一个数k时,顺便对2k+1,3k+1也进行判断,当这个数大于我们输入的数时可知是不可能有结果的,因为无论如何k的倍数都是大于k的,而x小于k。和弗洛伊德,对需要传递的对象都进行标记,经过处理后使他们的父亲发生相应的改变,最后对数组进行查询累加即可。规律题,单数和复数方向刚好相反(循环里进行特判即可),每个n阶数组有2n-1条线。J - 判断元素是否存在。F - 蛇形填充数组。

2024-06-20 21:42:47 468

原创 Codeforces Round 952 (Div. 4)

思路: 给你一个n为大BOSS的血量值,再给你n组数字,每个数字有一个攻击值和冷却时间,每次攻击可以使用多个没有冷却的数字,问最少多少轮可以击败BOSS。直接枚举二分的边界,代表轮数,可以推断出,如果第n轮可以完成,那么n+1轮也一定完成,符合单调性,直接用二分,check询问能否打败BOSS即可。思路: 给你一个盒子,长宽高分别为x,y,z,给你一个体积K ,能否找到n,m,k,体积等于K,问在盒子中有多少种放法。因为数据范围是1~2000,枚举n和m,再算出k,看能否整除,最后求出。

2024-06-18 21:21:34 315

原创 MySQL数据库(三)

为防止错误的数据被插入到数据表,MySQL中定义了一些维护数据库完整性的规则;这些规则常称为表的约束。以上五种约束条件针对表中字段进行限制从而保证数据表中数据的正确性和唯一性。换句话说,表的约束实际上就是表中数据的限制条件。

2024-06-16 21:09:42 925

原创 6.13学习总结

题意:对于整个数组,我们可以选择一个范围(l,r),将这个范围内的数全部变为这个范围内的中位数,可以进行多次操作或者不做操作,求最后的数组的全部元素的最大值。思路:因为当选择的范围长度是2时,就可以将这个范围的两个数全部变为这两个数的较小值(x),那么一定存在一个长度为3的范围内的中位数<=x。如果整个数组的长度为2,输出较小值即可,反之,遍历数组全部长度为3的子数组,找到最大的中位数,然后输出。找到的第一个数一定是数组的最小数,第二个数为能被第一个数整除的最小数。1.两个部分的数组都是非递减的。

2024-06-13 22:06:53 273

原创 MySQL数据库(二)和java复习

(接口可以理解为一种特殊的类,里面全部是由。

2024-06-10 22:04:05 1151

原创 6.9学习总结

然后,它调用 bbs 函数将 IP 地址和子网掩码都转换成对应的 bitset。它首先调用 split 函数将 IP 地址按点号分割成四部分,然后将每个部分转换为整数,再将每个整数转换为对应的 8 位二进制数,最后将这 4 个 8 位二进制数组合成一个 32 位的 bitset。在这里,它用于将 IP 地址和子网掩码按照点号和斜杠分割成对应的部分。它的主要功能是判断一个给定的 IP 地址是否匹配一个给定的子网掩码。求最后删去的那个元素对m的取余,再乘上前一次被删除的元素,再对m取余就是倒数第二个答案。

2024-06-09 21:35:28 270

原创 6.6学习总结

DDL(数据库操作)(一).操作数据库1、创建数据库CREATE DATABASE [IF NOT EXISTS] 数据库名;2、删除数据库DROP DATABASE [if EXISTS] 数据库名;3、使用数据库--如果表名或者字段名是特殊字符,则需要带``use 数据库名;4、查看数据库(二).操作表(增删查改)创建表结构(无约束)id INT COMMENT 'ID,唯一标识',username VARCHAR ( 20 ) COMMENT '用户名',

2024-06-06 21:43:58 930

原创 Codeforces Round 950 (Div. 3)(A~D题)

我们只需要检査排完序之后比较在k位置的立方体ak与最喜欢的立方体af,的大小即可,如果ak>af,说明af的位置在k之前,一定会波删;如果ak< af,说明af的位置在k之后,一定不会被删;如果ak= af,检査ak+1,如果ak+1 = af,则有可能被删,否则一定被删。序列求出来,可以发现若要满足题意,必然需要找到gcd序列中递减的位置,并且删除与之相关的数(要记录前后两个数和他本身)。若最后一个修改数存在于b数组中,那么只需要看这些修改的数能否把a数组中待修改的数全部覆盖即可,否则一定不存在。

2024-06-04 20:12:18 303

原创 Educational Codeforces Round 166 (Rated for Div. 2) (A~C)

从前往后遍历,检查一下是a能力值浪费了还是b能力值浪费了,然后从后往前枚举,开一个数组维护一下最近后缀损失能力值。输出答案的时候,如果当前的人的站的职位刚好是能力值被浪费的职位,输出总和减去当前的人的能力值加上最近损失能力值。思路:按照ASCLL值进行比较就行(因为字母的ASCLL本来就在数字后面),所以,只要找到前面比后面的数大就输出NO,反之YES。对于b[n+1],得到它的最小代价就是a[i]->b[i]过程中与它最小的差值+1。对于a[i]->b[i],,转变的最小代价就是它们的差值。

2024-06-02 21:15:09 272

原创 5.30 学习总

题意:对于整个数组,我们可以选择一个范围(l,r),将这个范围内的数全部变为这个范围内的中位数,可以进行多次操作或者不做操作,求最后的数组的全部元素的最大值。思路:因为当选择的范围长度是2时,就可以将这个范围的两个数全部变为这两个数的较小值(x),那么一定存在一个长度为3的范围内的中位数<=x。如果整个数组的长度为2,输出较小值即可,反之,遍历数组全部长度为3的子数组,找到最大的中位数,然后输出。找到的第一个数一定是数组的最小数,第二个数为能被第一个数整除的最小数。Polycarp 有一根绳子。

2024-05-30 21:24:18 982

原创 5.28 学习总结

使用 font 属性时,必须按上面语法格式中的顺序书写,不能更换顺序,并且各个属性间以空格隔开,不需要设置的属性可以省略(取默认值),但必须保留 font-size 和 font-family 属性,否则 font 属性将不起作用。想要差异化选择不同的标签,单独选一个或者某几个标签,可以使用类选择器,类选择器在 HTML 中以 class 属性表示,在 CSS 中,类选择器以一个点“.”号显示。基础选择器是由单个选择器组成的,包括:标签选择器、类选择器、id 选择器和通配符选择器。

2024-05-28 20:59:59 912

原创 5.26学习总结

(本次总结主要总结一下HTML的概况以及其中的一些基础)HTML 是用来描述网页的一种语言。HTML 指的是超文本标记语言 (HyperTextMarkupLanguage)HTML 不是一种编程语言,而是一种标记语言标记语言是一套标记标签HTML 使用标记标签来描述网页()

2024-05-26 22:08:00 937

原创 5.23 学习总结

1.获取电脑麦克风,将语音信息转换为字节数组,进行传递的方法(因为要保持通话,所以要循环的去发送字节数组,如果要中断聊天可以使用stop方法,来跳出循环;3.我们可以通过对x和y的值计算来得出H和R的行动,并且如果要保持一致,每一次的行动都应该是以2为单位进行。2.获取电脑扬声器,接收传递来的字节数组,再转换为音频,通过扬声器播放。(接收与发送的类似,不过多赘述)2.获取到电脑的麦克风和扬声器,将获取到的语音信息转换成以字节数组的形式传递。3.开启计时线程,监听语音聊天过程,添加结束聊天的按钮,中断循环。

2024-05-23 20:00:10 513

原创 5.21第一次项目总结

1. 项目基础功能点都已完成,但是部分功能点具有问题,或者考虑不周(如没有实现NIO,在线状态没有考虑到心跳机制解决断网等情况,常用语没有删除等)。2.创新功能点只有一个:聊天功能的消息提示,可以对接收的消息进行来电提示,也可以对消息提示进行保存,更新。1.java基础过于薄弱,对于很多java的知识了解太少,只知道皮毛(例如在回答学长问的序列化和反序列化的问题),java面向对象的特性也没有很好的了解,更没有将其融入到项目中。

2024-05-21 21:11:27 1146

原创 5.14学习总结

java聊天室项目。

2024-05-14 23:44:42 407

原创 5.12学习总结

输入群号,发消息给服务器,服务器查询是否存在该群,若存在,查找群主和管理员,若群主,管理员等人在线,实时发送接收,若不在线下次登录成功提醒。从好友表选取人发送到服务器,服务器随机生成不重复的群号,存储在数据库,同时建立中间表,处理用户与群聊的关系。若发送的人在线且在你的这个界面,实时接收更新,若在线不在你的这个界面,发出提醒,若不在线,下次登录提醒。根据用户是否是群主和管理员是否能执行,修改保存后,发送给服务器,服务器更新相应数据。给服务器发送信息,服务器删除相应的数据,若被删的好友在线,实时更新。

2024-05-13 14:26:26 455 1

原创 4.28学习总结

NIO是一种同步非阻塞的I/O模型, NIO提供了与传统BIO模型中的 Socket 和 ServerSocket 相对应的 SocketChannel 和 ServerSocketChannel 两种不同的套接字通道实现,两种通道都支持阻塞和非阻塞两种模式。单选菜单项控件,可以在一组单选菜单项中只选中一个,需要设置Toggle Group属性的值,如果不进行设置,那么可以多选。多选菜单项,但选中该菜单项后,前面会出现一个小勾,并且在下次打开的时候该勾仍然是被勾选上的,而且可以多选。

2024-04-28 22:15:58 496

原创 4.23学习总结

NIO 是 Java SE 1.4 引入的一组新的 I/O 相关的 API,它提供了非阻塞式 I/O、选择器、通道、缓冲区等新的概念和机制。相比与传统的 I/O 多出的 N 不是单纯的 New,更多的是代表了 Non-blocking 非阻塞,NIO具有更高的并发性、可扩展性以及更少的资源消耗等优点。

2024-04-23 22:35:10 664 2

原创 4.21学习总结

我的理解是:MenuBar是顶端的那个横条,menus下是菜单栏内的具体内容,Menu就是一个个可以显示下拉内容的菜单,items下是菜单的内容,MenuItem用于设置具体内容。Accordion 是一个可折叠的容器,用于显示一组可折叠的面板,每次只能展开一个面板。这是一个水平排列的 SplitPane 控件,将子控件水平分割为两个部分,并允许用户通过拖动分隔条来调整它们的大小。这是一个空白的 SplitPane 控件,您可以在其中添加自定义的子控件,并通过拖动分隔条来调整子控件之间的大小。

2024-04-21 22:59:56 930

原创 4.18学习总结

Structure Query Language(结构化查询语言)简称SQL,它被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。分别为客户端和服务端创建多个线程,客户端主线程用来连接服务端,副线程用来对服务端的信息进行监听,服务端,主线程用来监听客户端,保持客户端连接,副线程用于接受发消息.同时,创建多个客户端时,我们应将多个客户端的socket对象放入集合中.3.数据库管理系统(DBMS)、数据库、表三者之间的关系。

2024-04-16 22:10:40 1038

原创 4.14学习总结

网络编程是指通过计算机网络进行数据传输和通信的编程技术。在网络编程中,可以实现不同计算机之间的数据交互和通信,从而实现分布式系统、客户端-服务器应用等。Java网络编程基于栈进行通信,使用Socket和ServerSocket类来实现网络连接和数据传输。Java提供了丰富的网络编程API,包括Socket编程、URL处理、HTTP客户端等,使得开发人员可以方便地构建各种网络应用。网络编程基于TCP/IP协议栈,其中TCP(传输控制协议)提供可靠的数据传输和连接管理。

2024-04-14 19:27:13 1255

原创 4.11学习总结

这两个类的主要优势在于减少了对底层数据源(例如文件、网络连接等)的直接读写次数,而是将数据先暂存在内存缓冲区中,减少了 I/O 操作的频率,从而提高了读写性能。Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标准方法。BufferedReader 继承自 Reader 类,它的作用是从输入流中读取文本数据,并缓冲各个字符,以提供字符、数组和行的高效读取。

2024-04-11 21:39:46 1347

原创 4.9学习总结

File 类的对象代表操作系统的文件(文件、文件夹)创建文件对象代表文件,获取文件信息(大小、修改时间)、删除文件、创建文件(文件夹)等功能。线程(thread)进程可进一步细化为线程,是一个程序内部的执行路径。若一个进程同一时间并行执行多个线程,那么这个进程就是支持多线程的。一个进程中的多个线程共享相同的内存单元/内存地址空间。他们从同一堆中分配对象,可以访问相同的变量和对象多线程的优点;提高应用程序的响应。可以增强用户体验。提高计算机系CPU的利用率。改善程序结构。

2024-04-09 21:51:48 575

原创 4.7学习总结

只有终结操作执行的时候,才会真正开始流的遍历,并且会生成一个结果。

2024-04-07 22:57:20 717

原创 4.4学习总结

线段树是一种二叉搜索树,而二叉搜索树,首先满足二叉树,即每个结点最多有两颗子树,并且是一颗搜索树,我们要知道,线段树的每个结点都存储了一个区间,也可以理解成一个线段,而搜索,就是在这些线段上进行搜索操作得到你想要的答案。线段树的适用范围很广,可以在线维护修改以及查询区间上的最值求和。对于线段树来说,每次更新以及查询的时间复杂度为O(logN)

2024-04-04 23:46:51 570

原创 4.2学习总结

抽象类主要用来抽取子类的通用特性,作为子类的模板,它不能被实例化,只能被用作为子类的超类。有方法声明,没有方法体”的一类方法统称为抽象方法抽象方法用关键字abstract修饰。需要注意的是,如果一个方法已经确定是抽象方法,那么它绝不能再有方法体,即不能出现大括号,而是只需要在()后面添加一个分号即可拥有抽象方法的类一定是抽象类;但是抽象类不一定有抽象方法。1.2使用场景当父类需要定义一个方法,却不能明确该方法的具体实现细节时,可以将该方法定义为abstract,具体实现细节延迟到子类。

2024-04-02 21:40:10 1449

原创 近两周学习计划

以java学习为主,加快java知识的学习,开始向着项目方向靠近,开始逐步了解相关知识,构建项目框架,多进行实践.2.<疯狂java讲义>第七章java基础库和第八章java集合(241~332页)辅佐视频进行。2.<疯狂java讲义>第七章java基础库和第八章java集合(241~332页)辅佐视频进行。4.逐步接触一些java小项目,整体了解项目框架。3.学习javaFx的用法,掌握项目相关知识。5.成2次Codeforce比赛。4.成2次Codeforce比赛。5.每天1~2道算法题。

2024-04-01 00:01:40 206

原创 3.31学习总结

(本次学习总结,总结了目前学习java遇到的一些关键字和零碎知识点)

2024-03-31 23:23:01 1114

原创 java学习 面向对象三大特性简介

它从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以现实世界中的事物(即对象)为中心来思考,认识问题并根据这些事物的本质特点,把它们抽象地表示为系统中的类,作为系统的基本构成单元(而不是用一些与现实世界中的事物相关比较远,并且没有对应关系的过程来构造系统),这使得软件系统的组件可以直接映像到客观世界,并保持客观世界中事物及其相互关系的本来面貌(<疯狂java讲义>)。用我的理解来就是,

2024-03-28 20:48:33 850

原创 3.26学习总结java初步实现学生管理系统

(该项目通过视频讲解过程中完成,其中将一些操作进行了修改和完善,其目的是为了巩固前面学习java的一些用法,熟悉写项目的过程)

2024-03-26 22:15:16 299

原创 3.24总结

这是一道bfs的搜索题,通过题目我们能够得到我们需要可以通过三种操作实现转化密码 1.任意数加1(大于9变成1) 2.任意数减1(小于1变成9) 3.交换任意两个数的位置.我们在bfs中分别枚举这几个操作即可.

2024-03-24 21:33:38 220

空空如也

空空如也

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

TA关注的人

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