自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Codeforces Round 970 (Div. 3)(A~F)

因为删除操作只能进行一次,所以n为奇数时,必须执行一次删除操作,n为偶数时,则不用删除,如果判断此时奇偶为数量最多的字母即可,我们要做的就是将奇欧位全部字母变成数量最多的字母需要的操作数即可,更新最小值。当1为奇数和2为奇数时,1是的数量小于2时输出NO,反之输出YES。n必须是平方数,然后模拟一下,中间全部是0即可。就是从i位置出发,经过的位置有多少为0,并查集。这数据范围,感觉这题比第一题简单。

2024-09-29 23:16:38 136

原创 倍增练习(1)

题目思路:st表的板子题求最值,通过倍增的思想,先通过预处理将各个区间的最大值通过转移式求出f[i][j] = max(f[i][j - 1], f[i + (1 << (j - 1))][j - 1]);然后再进行重叠查询查询,k = log2(r - l + 1);

2024-09-19 22:44:30 279

原创 博弈论专题一(NIM游戏)

重点结论:对于一个Nim游戏的局面(a1,a2,...,an),它是P-position当且仅当a1^a2^...^an=0,其中^表示位异或(xor)运算。(本篇只做简单的结论描述,详细证明过程请看堆物品,每堆 ai 个,两个玩家轮流取走任意一堆的任意个物品,但不能不取,取走最后一个物品的人获胜。定义 Nim 和 =ai⊕a2⊕⋯an当且仅当 Nim 和为 0 时,先手必败,反则先手必胜。

2024-09-12 21:02:34 628

原创 9.10 学习总结

P2370 yyy2015c01 的 U 盘 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)首先完成基本三大类的编写(controller,service,mapper)我们还需根据实际需求添加正则表达式(用户名和密码不能为空,否则无法正常注册)请求参数格式:x-www-form-urlencoded。响应数据类型:application/json。"message": "操作成功",请求路径:/user/register。接口描述:该接口用于注册新用户。一道非常普通的背包问题,练练手。

2024-09-11 00:11:47 290

原创 大二上学期计划安排

大二上学期计划安排学期目标:加强算法学习,提升算法思维,为以后的算法竞赛做准备 学习java知识,学习框架,构建知识体系,深入底层,增强理解 增加项目经验,独立完成至少一个项目,并进行交流,优化 增强团队凝聚力,营造良好的团队氛围 阅读书籍,阅读至少3本以上经典书籍日常学习安排:算法练习,每天至少2道算法题,并尽力坚持每周的cf,adc,牛客等比赛 牛客sql语句练习每天至少1道 每周进行算法总结,并与本队的算法小组完成一次团队赛 持续学习项目知识,深入底层,学习

2024-09-08 23:25:05 4920 15

原创 单调队列(专项复习)

题目思路:单调队列模版题,每次都输出队列中的第一个元素。以此维护队列中元素序号的单调性,得到结果。只是比较判断,时间复杂度很小。相等的值也要挤掉。最大值同理。

2024-09-05 22:54:21 356

原创 字典树Trie(专项复习)

题目思路:字典树的板子题,熟练写出insert函数(建树),以及query函数(查询)即可.

2024-09-03 22:13:51 207

原创 Codeforces Round 950 (Div. 3)

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

2024-08-02 00:27:17 341

原创 Pinely Round 4 (Div. 1 + Div. 2)(A~D)

通过操作无法改变任意两个数的相对奇偶性,也就是假如有一奇一偶,那么他们奇偶性一定不同,最后也就无法都化为0.至于剩下的情况,我们不妨可以取他们的max与min,我们要让他们归0,也就一定要让他们变一样,这个问题等价于max=min,于是我们每次都取他们的平均数,这样就可以以指数级别递减。发现除了第一个元素和最后一个元素,其余的都必须同时a[i]和a[i-1]的所有1,然后最后一个元素就是原来的最后一个元素,第一个元素必须是a[1]&b[2],然后遍历一下判断是否正确。又因为差了 4,所以不可能是 2。

2024-07-30 21:43:54 374

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

所以本题右端点是固定的,若元素n不在开头,则r在元素n所在的位置,若n在开头,则r在元素n - 1所在的位置。用最少的长度为2的字符串按一定规则拼出s。规则是:前一个字符串的尾与后一个字符串的首相同。统计s中长度为2的不同字符串数量。我们将每一个偶数与最小的奇数消减,只要最后的结果全为正数则有解,否则无解。2只有减奇数才能改变奇偶性。将a和b分别按从小到大的顺序匹配便是最优的,一定能满足|ai−bi|≤k成立。在解空间中,以n/n-1开头的排列字典序比其他可行解大,因此最优解在以n/n-1开头的解空间里。

2024-07-25 23:23:46 236

原创 AtCoder Beginner Contest 363(A~D题)

枚举长度,首先计算出答案回文数的长度。通过枚举和减法可以计算出是当前长度下第k𝑘大的回文数。而前一半就是顺序的,第k𝑘大就是当前长度的数的第k𝑘大,这个很好求。接下来只需要构成回文,直接输出即可。将L𝐿从小往大排序,那么只需要第n−P+1𝑛−𝑃+1大的数满足条件即可,假设这个数是a𝑎。因此,只需要计算T−a𝑇−𝑎即可。注意,如果这个数是负数,意味着初始时就满足条件,此时要输出00。我们只需要找到下一阶段的下限。a / 100 是本阶段+1 变成下一阶段,再 * 100变成下限,再与原来的相减即可。

2024-07-23 20:57:57 324

原创 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 365

原创 【无标题】

给定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 303

原创 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 253

原创 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 188

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

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

2024-07-11 21:59:26 431

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

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

2024-07-09 12:20:48 486

原创 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 423

原创 背包问题(一)

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

2024-07-04 23:42:41 406

原创 java反射

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

2024-07-02 23:32:08 617

原创 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 504

原创 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 354

原创 MySQL数据库(三)

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

2024-06-16 21:09:42 954

原创 6.13学习总结

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

2024-06-13 22:06:53 291

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

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

2024-06-10 22:04:05 1171

原创 6.9学习总结

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

2024-06-09 21:35:28 291

原创 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 947

原创 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 326

原创 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 317

原创 5.30 学习总

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

2024-05-30 21:24:18 1015

原创 5.28 学习总结

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

2024-05-28 20:59:59 928

原创 5.26学习总结

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

2024-05-26 22:08:00 953

原创 5.23 学习总结

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

2024-05-23 20:00:10 538

原创 5.21第一次项目总结

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

2024-05-21 21:11:27 1182

原创 5.14学习总结

java聊天室项目。

2024-05-14 23:44:42 433

原创 5.12学习总结

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

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

原创 4.28学习总结

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

2024-04-28 22:15:58 530

原创 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 682 2

原创 4.21学习总结

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

2024-04-21 22:59:56 945

原创 4.18学习总结

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

2024-04-16 22:10:40 1065

空空如也

空空如也

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

TA关注的人

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