- 博客(23)
- 收藏
- 关注
原创 排序算法的知识
就是将未排序好的元素逐个插入到已排序的序列中的合适位置。插入是直接整个数组进行,而希尔排序则是分组进行排序,然后逐步缩短每个数组的长度,直到长度为1,就是通过相邻元素的比较和交换,将较小的元素逐步”冒泡“到数组前端。b、从未排序的数组开始,逐个去除,跟已排序的部分从前往后开始比较。a、选择数组的第一个元素作为已排序部分,剩余的就开始挨个插入。a、遍历数组,从第一个元素开始比较,依次比较相邻的两个元素。a、首先选择一个间隔,就是每个子数组的长度。就是需要替换,因为你排好序的数组的当前位置是有元素的,
2025-08-24 21:14:49
148
原创 杭电oj第2061题:Treasure the new start, freshmen!
这就是为什么说C++来源C,又不同于C,你可以用C语言的scanf来输入课程名,学分,成绩。2、浮点数的输出有两种,一种就是C语言的printf,或者C++的setprecision来控制浮点数位数。数),然后是 K 行,每行将遵循以下格式:课程名称(长度 <= 30)、学分(<= 10)、分数。输出上述每种情况的 GPA,如果 GPA 不存在,则输入:“对不起!double:双精度,约15到17的有效位数。因为很多题都是让你输出多少位的小数,至于第三种,了解即可。float:单精度,约6到7的有效位数。
2025-08-24 21:10:46
517
原创 杭电oj第2063题:过山车
为了给当前女生找到配对,不惜 “打扰” 已配对的女生,让她重新寻找其他可能的男生。如果被打扰的女生能找到新的配对,就形成了一条 “增广路径”,整体匹配数增加 1;否则就维持原有的配对方案。补充知识:回溯算法先找一个可能的选择走下去,走不通,就回到上一步,并且消除这个选择带来的影响!!这也是为什么会有这一行的原因,大部分新手做就是在这里容易犯糊涂。因为回溯,肯定是把你当前的选择带来的影响一并回溯回去。// 3. 撤销选择(回溯):恢复状态,尝试下一个元素// 从路径中移除当前元素// 标记为未使用。
2025-08-23 21:23:34
775
原创 杭电oj第2066题:一个人的旅行
首先初始化原点到其他点的距离为无穷,方便后续的松动,在初始化dist[0]等0(因为原点到原点肯定是0)。再去找离当前点最近的节点,再更新其状态(访问还是未访问),因为每个点只能被访问一次。再根据找到的距离最近的点,去更新其相邻节点的距离,最最重要的是,每个节点只能被访问一次,所以你必须再更新相邻节点的时候,判断其是否被访问过。SPFA算法主要就是把当前的节点相邻的节点全部入队,然后每次根据队列弹出的第一个元素来更新其相邻的节点。知道队列中不存在元素。
2025-08-22 21:29:53
1096
原创 01背包和完全背包
完全背包的正序遍历就是为了让大容量的状态能复用小容量中”已选择当前物品“的状态,从而实现重复选择而01背包就是为了让每个容量所依赖的子状态都是”未选择当前物品“的状态,从而实现避免重复选择。
2025-08-21 21:12:38
862
原创 杭电oj第2069题:Coin Change
5、找到状态转移方程:dp[i][j] + = dp[i-coin][j-1]。这个就和完全背包一样了,就是在 j - 1个硬币组成面值为 i-c的基础上,增加一个面值为 coin的硬币。1、最开始,想的是贪心算法,后来才发现不对啊,贪心找的是最少的个数的方法,而不能找所有满足条件的方法。这里是不需要去担心会不会重复算的问题,因为每一个面值循环的时候,都只会用该面值来更新。4、所以,用dp[i][j]来表示用j个硬币来表示i美分。dp[j]中的j指的就是容量为j的时候的最大值。
2025-08-21 20:42:38
982
原创 进制间的转换
还有就是16进制的转换之后,如果是字母的话,都是小写,如果要大写的话,要加。hex/oct/dec是持久化的格式控制符。设置后会影响后续的输出,需要。用dec手动回复为十进制。
2025-08-20 23:00:42
144
原创 杭电oj第2058题:The sum problem
每个情况包含两个整数 N, M( 1 <= N, M <= 1000000000)。而又因为 k * t = 2 * m 是固定的,就相当于你 2*5 = 10,你可以是序列长度为2,序列和是5.也可以是序列长度为5,4、这样就可以通过枚举k(序列长度)来计算,循环的次数就是(2*m)^1/2。所以一个k肯定只会对应一个大于sqrt(2m)的长度,就是t了,因为。你这里讨论的是看k大于(2m)^1/2的情况,就是用t作为序列长度。k小于(2m)^1/2的情况,就是用k作为序列长度。k和t是可以互换的。
2025-08-20 22:33:28
539
原创 杭电oj第2034题:人见人爱A^B
(1<=A,B<=10000),如果A=0, B=0,则表示输入数据的结束,不做处理。对于每个测试实例,请输出A^B的最后三位表示的整数,每个输出占一行。输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成。1、最开始想的是直接使用pow(),但是毫无意外肯定是溢出的,说明:A^B的含义是“A的B次方”求A^B的最后三位数表示的整数。
2025-08-18 18:46:54
380
原创 杭电oj第2025题:查找最大元素
对于输入的每个字符串,查找其中的最大字母,在该字母后面插入字符串“(max)”。多个测试实例如果存在多个最大的字母,就在每一个最大字母后面都插入"(max)"。
2025-08-17 21:06:03
167
原创 SSM(Spring , SpringMVC , Mybatis)的学习(2)
这个是SSM(1)的续集,因为第一个确实写的有点多了,感觉自己看的话也比较吃力(虽然是笔记嘛)。
2025-08-12 16:14:19
97
原创 SSM(Spring , SpringMVC , Mybatis)的学习(1)
本文是一份HTML和JavaScript的学习笔记,主要记录了作者学习过程中的关键知识点。HTML部分简要介绍了基本结构、常用标签(标题、图片、超链接等)、CSS引入方式、布局和表单设计等内容。JavaScript部分涵盖了基础语法、函数、对象(Array、String、JSON等)、BOM和DOM操作等核心概念,并提供了代码示例。作者强调这仅作为个人学习记录,建议读者参考更专业的教程获取详细内容。笔记内容实用性强,适合快速回顾HTML和JS的基础知识。
2025-07-28 16:22:24
360
原创 JavaSE的学习
两个值,第一个是key,第二个是value。key代表的是键,是唯一的,不能有重复的。但是value不一样,他只是一个值,那么对他的要求就没这么高了。
2025-07-11 08:26:40
293
原创 算法的学习
主要的问题是三类:最长子数组,最短子数组和子数组的个数注:不定长窗口滑动可以看作是维护一个队列:左指针的滑动是出队,右指针的滑动是入队。
2025-06-27 10:21:12
422
原创 CSS基础语法
这一行的意思就是将网格容器分割成三列,第一列为100px,第二列为150px,第三列为200px。fr 是一个灵活的单位,代表网格容器剩余空间的一个比例份额。这一行的意思就是均匀分割4份(1+2+1),第一列占一份,第二列占两份,第三列占一份。这一行的意思就是第一列根据内容来调整大小,第二列固定为100px。repeat意思重复,所以这个函数的意思就是重复3次,每一列为100px。相当于grid-template-columns:100px 100px 100px;
2025-04-28 13:42:43
526
原创 JS的学习
一种运行在客户端的编程语言。其中的执行顺序就是按照HTML文档的执行顺序来进行,只是alert()和prompt()的优先级会更高。用于自己摸索学习JS的东西,写的不好勿喷(仅仅是为了方便自己的一个学习)eg:1000就是数字字面量 '这个是什么‘就是字符串字面量。注意:此时的script中是不允许写东西的,即使写了也不会执行。这个不会在你的页面中显示,而是在后端的console中显示出来。以下的这些都是写在<script></script>当中的。此时的JS中的格式是从外部通过src引入的。
2025-02-08 23:25:08
885
原创 机组中的替换算法
当cache没有装满的时候,给每个输入cache中的数据编号,当在后续命中的时候,就将其更新为0,否则+1.当cache装满之后,又有新的数据需要输入,就将编号最大的替换出去。当cache装满之后,当有新的数据进入时,就将最先进入的给替换掉。给每一个都进行标号,当cache装满之后,就将号数最小的替换出去。顾名思义就是随机替换某一个cache中的数据。第二种:最不经常使用法(LFU)第三种:近期最少使用法(LRU)第一种:先进先出法(FIFO)读到相同的时候,就将其号数+1。第四种:随机替换算法。
2024-12-06 18:58:33
365
CCCC2025GPLT12083_全国总决赛_团队三等奖_中国石油大学(北京)克拉玛依校区_cupk02_杨志成.pdf
2025-08-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人