自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Git学习笔记

需求1:基于master新建publish分支,完成发布文章业务,然后修改内容页面的html文件的title标签。合并提交:发生于原分支产生了新的提交记录后,再合并回去时发生,自动使用多个快照记录合并后产生一次新的提交。需求2:切换到master,也再修改内容页面的html文件的title标签,并提交一次。注意:提交记录的顺序按照产生的先后顺序排列,而非合并的先后顺序。概念:把版本库某个版本对应的内容快照,恢复到工作区/暂存区。记录文件状态内容的地方,存储着修改的历史记录。

2024-09-10 19:20:11 1136

原创 Webpack学习笔记

定义静态模块:指的是编写代码过程中的,html,css,js,图片等固定内容的文件打包:把静态模块内容,压缩,整合,转译等(前端工程化)less/sass转成css代码把ES6+降级成ES5支持多种模块标准语法使用:webpack打包默认出口是dist下的main.js。

2024-09-09 11:49:47 1443

原创 Node.js学习笔记

概念:项目是由很多个模块文件组成的好处:提高代码复用性,按需加载,独立作用域使用:需要标准语法导出和导入进行使用。

2024-09-01 23:35:40 1187

原创 JS学习笔记

e.target.tagName 是点击的对象具体是什么。因为剩余参数是真数组,可以使用pop,push方法。拷贝对象之后,里面的属性值是简单数据类型直接拷贝值。e.target(target就是点击的对象)在事件回调函数中绑定的第一个参数就是事件对象。普通函数里面this指向的是window。如果属性值是引用数据类型则拷贝的是地址。this指向就近外层作用域中的this。有短横线链接的属性,采取小驼峰命名法。谁调用函数,函数中的this就指向谁。对象解构的变量名可以重新改名,结构。

2024-09-01 16:05:11 1373

原创 ajax学习笔记

统一资源定位符,简称网址逻辑更清晰了解axios函数内部运作能解决回调函数地狱的问题概念:访问权限的令牌,本质上是一串字符串创建:正确登陆后,由后端签发并返回成功作用:判断是否有登陆状态,控制访问权限前端只能判断有无token,后端判断真实性。

2024-08-23 18:33:13 1232

原创 CSS3基本语法

能让哪些元素水平居中:(1)文本(2)span标签、a标签(3)input标签、img标签注意:如果需要让以上元素水平居中,需要给以上元素的父元素设置。

2024-06-19 21:05:07 1088

原创 HTML5基本语法

srcsrcsrc中可以填入图片的绝对路径或相对路径或者图片的网址altaltalt中填入当图片不能正常显示的文字信息titletitletitle中填入的是鼠标指针在图片悬停一会儿后出现的文字srcsrcsrc音频路径controlscontrolscontrols显示播放的控件autoplayautoplayautoplay自动播放looplooploop循环播放srcsrcsrc。

2024-06-18 21:14:33 889

原创 目标与学习方向

为了激发同学们学习技术的兴趣,以及尽可能的降低计算机学习上的信息差,萌生出了构建面向计算机协会的技术学习网站的想法,任务最终目的是成功构建网站并在计算机协会内部推广。应用程序编程接口:Restful API,GraphQL等,应用程序接口用于允许应用程序的服务器和客户端之间进行通讯。框架:React、Vue、Angular帮助构建更为复杂的用户界面,使开发过程更快、更高效。编程语言:Python、Java、PHP、Node.js、Java等。缓存:Redis、Memcached用于缓存。

2024-06-17 19:41:06 647

原创 CodeForces 1400分板刷(持续更新中~~~)

按数组每个位置的被处理的先后顺序,从大到小排序,然后扫一遍数组,因为数组前面的是较后被处理的,所以可以从剩余一个元素向剩余更多元素逐个扩展,计算每次扩展的结果,注意要存在。个时,可以保证自己操作完最后一次时使得全部的堆为空,这时是必胜的,所以问题就转化成了,看谁先手拿数量大于1的那一堆,谁就是必胜的。观察到,当最小堆石头数量为1时,那么这个人只能全部拿走,当大于1时,这个人可以选择全部拿走或者拿走。个数,并且按照个数升序排序,从后往前遍历,因为。先手,所以只有奇数位置上的元素可以被。的最优选择是,找后缀。

2024-05-20 17:11:57 846

原创 CodeForces 1300分 板刷

传球的情况与传球次数最多的那个人有关,传球次数比他少的,都可以经过传递将传球次数逐渐变成0,但是如果传球次数最多的,比所有其他的人传球次数加起来都多,那么在一个球的情况下这个人一定会剩下几次没传完,那就只能加球了,但是其他的所有人,传球次数都没有了,这个时候就只能传给任意的人,然后那个人将球丢掉不传递。Rahul的最优选择一定是选择中间的位置,Tina就选离Rahul最远的位置,这个题不需要考虑每一次涂座位的过程,只需要每次枚举Rahul的一个位置,求取两者的距离的最大值即可。并使得删除的人的总价值最小。

2024-05-17 19:47:14 734

原创 字符串刷题(day1)题解

最少的反转次数就是字典序最大的字符后面的字符数量(每一次右移会有一个比最大字典序字符小的字符,移动到它的前面,当最大字典序的字符移动到子序列末尾的时候,再次移动就可以视为没有移动)。每个字符串可以看做由一个前缀字符和一个后缀字符串组合而成,不同长度的后缀字符串对答案的贡献是相同的,但是前面的字符是不同的,所以只用记录前面出现字符的种类即可。所以不难发现,以n的因数为循环节是不可以的,所以要想使不相同的字符最少,就要以n的最小非因数大小为循环节大小。为两者不同的字符对的对数,s为相同的字符对的对数。

2024-04-24 10:06:20 695

原创 Another Permutation Problem 题解

同样的,正序排列中,任意翻转多个数的位置,会使整体值减小。

2024-04-19 01:05:05 890

原创 Make Almost Equal With Mod 题解

那么余数一定是这个数的二进制的。位构成的数,所以一定存在一个。使得数组中的数要么取。

2024-04-17 07:37:09 371

原创 Forming Triangles 题解

的边都可以作为第三条边,那么就求出两条相等边的组合数,再与第三条边组合(等腰)。或者直接求三边组合数(等边)。,所以组成三角形的边必定至少有两条相等,如。

2024-04-16 16:18:56 179

原创 A Balanced Problemset? 题解

(1)证明所有子问题的最大公因数一定是x的因数。所以所有子问题的最大公因数一定是x的因数。和其倍数组成,不可能有非倍数的情况。的一定是因数以及他的倍数。一定是可能的最大公因数。(2)证明枚举的因数。

2024-04-16 11:15:29 332

原创 CodeForces 1000~1500记录(第一周)

因为每一次拆分后的数据,会影响整个数组的增或减的性质,也就是,拆分后的数据,还需要再次判断使用。

2024-04-06 09:30:51 242

原创 codeforces round 894题解 A~F

所以只要求出得到最接近n种无序关系的不同元素的数量s,然后再和n做差,将得到的差加到s种就可以得到结果。一个魔法师,每秒钟可以恢复w个单位的水魔法和f个单位的火魔法,有n个怪,每个怪都有血量,求魔法师最少多久消灭所有的怪。有n*m个格子,每个格子中有一个字符,问是否有从左往右的四列格子中,分别包含v,i,k,a四个字符。就从左往右枚举每一列,记录v,i,k,a有没有且是不是按顺序出现的。{1,1,2,2,3,4} 比上面多了两组{1,1}、{2,2}而{1,1,2,3,4} 比上面多了一组{1,1}

2023-12-25 20:39:40 915

原创 codeforces round 817 题解 A~F

枚举每个人,和当前的人所写的字符串,与其他两个人所写的字符串比较,并记录相同的个数。若当前人写的某个字符串,其余两个人都写了,那么当前人不得分,若当前人写的某个字符串,其余两人中一个人写了,那么当前人得1分。就用字符1,2来表示每个字符,红色表示为1,蓝色和绿色表示为2,最后直接比较修改后的两个字符串是否相等就好了。有两行字符串,字符串中的字符代表颜色,这个人会将蓝色和绿色看成一个颜色,判断两个字符串是否在他眼里相同。是每个人计数的总和。最多可以改变1~n个人的看的方向,求每一个数量的改变后的值的最大值。

2023-12-22 19:40:47 811

原创 codeforces round 748 题解 A~D2

我们不难发现,如果最后两位没办法整除25的话,那么最后的数,无论如何都不能整除25,也就是说,应该要先修改结尾的两位数,如果最后两位不对的话,前面修改再多都是没有用的。有一条长长的走廊,一只猫在走廊的起始点,有一堆老鼠在走廊的任意地方分布(不包括0,n位置),老鼠洞口在n处,老鼠进洞以后,就安全了,猫可以把它所在位置的老鼠全都吃掉。简单贪心问题,老鼠一定是离洞口近的先跑,因为如果最远的先跑,那么最终的结局就是,猫离本来可以跑掉的老鼠越来越近,反而跑不掉了,所以能跑的一定先跑。,因为猫到洞口是不会吃老鼠的。

2023-12-21 11:07:41 1028

原创 codeforces round 811题解 A~F

时间是一个闭环,当到达凌晨十二点是,时间清零,但实际上我们可以不必这样,我们把时间转为一天1440分钟,当之一天这个人睡觉的时间之后没有顶任何闹钟,那么下一个闹钟,就是下一天的第一个闹钟,显然需要对闹钟时间进行排序,这里建议选用。首先,如果想让数是最小数,那么就要数字长度最短,并且较大值在低位上,所以就可以从大到小枚举1~9的数字,当sum+i>s的时候,就选取大小为s-sum的数,也就是较小的数,将每次选出的数存在数组里,然后倒着输出就ok了。处的状态**(放置该字符串的情况)。

2023-12-19 19:10:55 948

原创 CF round 900题解 A~D

得出这一点后,在一个区间内翻转,若一个区间翻转两次的话,相当于没有变,他的影响就可以被忽视,所以就可以用一个差分数组,记录每个区间的翻转次数,奇数次的区间就需要翻转,并且只用遍历区间的一半就行了,因为翻转是对称的。首先这个题不能暴力求解,即使我们通过二分找到了给定的x所在的区间,然后每次都要翻转,时间复杂度也依旧在O(n*q)。求出1~k和 n-k+1 ~n 的前缀和,判断x是否在这两个前缀和之间,如果在就存在,否则就不存在。奇数+奇数=偶数,奇数*3=奇数,奇数不能整除偶数,所以数组的构造方法就找到了。

2023-12-18 14:22:27 1057

原创 CF F. Multi-Colored Segments

不知道是有什么恶心的数据还是怎么样,一直过不了40个点,始终超时。

2023-12-17 11:08:10 88

原创 题解|#G. How Many Paths?# cf

第二次,再次遍历,将到某一点的标记沿着路径传递(第一步不会传递标记,比如当结点4标记为2时,他的下一个节点,假设为6,标记还是1,所以需要传递)。第一次,找出入度为1,或入度大于等于2的点,打上标记,然后将没有访问到的点和他的出边一并删除,并标记为0。然后常规拓扑排序,当遇到环以后,所有与环相关的点都无法被访问到,就标记为-1即可。dfs跑两次,或者bfs跑两次,一次是解决不了的。这个题说实话有点难度。最后遍历标记就ok了。

2023-12-16 10:26:49 79

原创 拓扑排序的应用

一、判断有向图有无回路或者自环,如果当某一个点在,完成到该点的拓扑排序后,他的入度仍旧不等于0,说明这个点存在自环或者在回路内部。拓扑排序遇到回路或自环后会无法往下面进行,所以所有与自环或回路有联系的点都无法被遍历。

2023-12-16 10:05:37 55

原创 题解|#F. Kirei and the Linear Function#

这个题需要最终结果对9取模的值,那么我们不如过程中就对9取模,这样区间值的和就是0~8范围内了,然后两个for对大小为0 ~8的枚举就好了。前置知识:任意一个十进制数对9取模,就等于对这个数的所有数位的加和取模。用pair来存下两个左端点的点对就行了。

2023-12-14 11:29:24 49

原创 题解|#E. Sending a Sequence Over the Network# codeforces round 826

这个题的原问题是,从1~n有没有一个正确的序列划分,可以缩小为子问题,从1~i有没有正确的序列划分,由于子问题和原问题的求解方式一样,且原问题需要由子问题推来,这就说明了这个题需要用动态规划来求解(不过蒟蒻一开始也没想到动态规划,还是太菜了)。2、当i为起始时,要判断会不会越界,然后如果前**i-1**长度的区间能被正确划分,那么前**i+a[i]**长度的区间也能被正确划分。考虑递推方程怎么写,由于只用判断整体区间划分能否正确,所以设一个一维bool数组即可,

2023-12-14 10:23:13 48

原创 题解|#D. Masha and a Beautiful Tree# codeforces round 826

就是归并排序的变形,主要还是反映了一个大问题可以分成每个独立的子问题进行求解的分治思想,整体并不难。

2023-12-14 08:25:39 51

原创 题解|#C. Minimize the Thickness# codeforces round 826

因为要求每个序列的和相等,所以总数除以序列的值一定可以整除,所以就依据这个不断的枚举序列长度,并通过dfs进行验证,直到找到最符合题意的长度。这道题要将序列分为一个或多个连续序列,且要求每个序列的和相等,找到可能成功划分的最小厚度。

2023-12-14 07:28:32 43

原创 题解|#F. Reverse# codeforces round 760

然后不论是使用dfs还是bfs搜索的方式,都需要限制字符串长度,10^18是60个二进制位,所以长度限制在70就可以了。当目标字符串的最后一个字符的值为0的话,那么一定不可能,输出NO,然后结束即可。其他的也没什么要注意的地方,总之这个题2000的难度个人觉得打的偏高了一些。

2023-12-13 18:27:49 30

原创 题解|#C. Paint the Array# codeforces round 760

由题意可以知道,数组填充颜色后一定是这样子的rbrbrbrb(红蓝相间的),而可以被d整除的涂成一种颜色,不可以的涂成另一种颜色。,所以分别求出奇数下标和偶数下标的最大公约数(补充 欧几里得算法求最大公约数。

2023-12-13 08:24:37 90

原创 题解|E. Guess the Cycle Size# codeforces round 820

这个题呢,对于同一对点查询两次,如果答案不一样,那么两个答案的加和一定就是一个环。交互题大概就是你输出一句提问,机器回答你一句输入。第一次做交互题,有点懵逼不知道怎么做。

2023-12-13 08:22:48 43

原创 哈工大操作系统——第七章、换入换出用磁盘和时间来换取一个规整的虚拟内存

​ 通过虚拟页面的换入/换处机制呢,就实现了每个虚拟内存中的页面都能正确的映射到物理内存当中,具体是什么意思呢?当物理内存中为空时,当然虚拟页面可以直接建立映射,但是当物理内存中不足以映射一个虚拟页面时,就需要将一个最近时间内最少用到的程序(其实应该是程序的一部分)换出物理内存,腾出空间来再将虚拟页面换入。​ 首先当MMU发现虚拟页面在页表项的有效位为0时开始,这个时候MMU会向CPU发出缺页中断,缺页中断的调用号为14。

2023-10-25 09:16:25 156 1

原创 哈工大操作系统——第六章、内存管理——给程序执行提供一个舞台

​ 用户常常要求程序能以分段的方式出现。就是将代码段、数据段、栈段、函数库这些分开实现,即数据存放在数据段中,操作部分对应代码段,函数嵌套在栈段中实现。这些段都从0地址开始单独编址。​ 我们看到,这些段都从0地址开始单独编址,但是0地址处最多只能有一个程序,所以一定是需要重定位的,段的重定位我们引出段表的概念。段表是在程序各个段申请内存空间时形成的。​ 分页就是将物理内存分割成大小相等的页框,将请求放入物理内存的段也分割成同样大小的页,最后将所有的页都映射在页框上,完成物理内存页框的使用。

2023-10-22 17:00:56 193 1

原创 hdu 1010——tempter of the bone题解

​ 那么如何得知S、D的0,1情况呢,就看f(曼哈顿距离)的奇偶性,如果f为奇数,说明S、D一个为1,一个为0,如果f为偶数,说明S、D全为1或全为0。​ 从题目中我们可以发现可行性剪枝的方法:一共走T步,现在走了K步,还要走X步,这时候要判断是否还可以走X步。​ (2)S、D一个为1一个为0时,当T为奇数时,可能有解,当T为偶数时,一定无解。出发,每步走一块地板,在每块地板不能停留,而且走过的地板都不能再走。​ (1)S、D同0或同1,当T为偶数时,可能有解,当T为奇数时,一定无解。

2023-10-20 20:27:55 83 1

原创 哈工大操作系统第五章——进程同步

​ 就拿这个最最基础的模型举例,什么是生产者,显而易见是产生资源的部分,消费者是消耗资源的部分,那么如何让生产者产生的资源不过剩,消费者消耗的资源不超额呢,这就需要考虑如何**“同步”**——即,互相不可见的两部分的相互配合配合​ 信号量是在信号上关联的一组整数,可以根据这个整数来决定进程的阻塞或唤醒。​ 更具体一点点​ (1)信号量就是一个整型变量,用来记录和进程同步有关的重要信息​ (2)能让进程阻塞睡眠到这个信号量上。

2023-10-17 07:44:20 75

原创 哈工大操作系统实验四--基于内核栈完成进程的切换(理论分析)

执行切换TCB/TSS**(由于本实验要求使用内核栈来切换,那么我们就需要把schedule函数的根据TSS的切换方式,改为根据PCB的切换方式)** ,切换完成后,遇到函数的**}**,即执行ret指令,将栈顶的ret_from_sys_call函数地址弹出,然后执行该函数。进程切换以后,现在的栈顶指针指向的是切换以后的内核栈栈顶,要退出内核态进入用户态首先要做的就是恢复用户态的执行现场,就是一系列pop,然后调用iret弹出用户栈的基本信息,即cs:eip\ss:esp,显然就回到了用户态了。

2023-10-14 17:46:01 186 1

原创 神奇的函数指针

​ 我们知道函数名称反映了一个函数的地址,而指针恰恰也可以用地址来赋值,那么我们可不可以把二者结合起来呢?答案是可以的,我们可以通过指针来反应函数的地址,甚至可以声明一个有着函数指针语法的函数。举一个简单的例子​ 这就是一个函数指针的声明,当然如普通指针一样,他需要一个初始化的地址,如果不初始化,就会出一些问题,所以我们可以在声明的同时或者声明以后为他赋值。pf1=pam;​ 是不是和指针十分相似,没错,函数指针其实就是一种指向函数体的开始地址的指针(通俗来说就是指向函数的指针)。

2023-10-12 15:46:47 28 1

原创 哈工大操作系统学习——第三章、多进程——操作系统最核心的视图

并发就是多个程序同时开始进行,并且他们可以交替进行,当一个程序遇到I/0时,就跳转到另一条程序执行,当这条程序又遇到I/O时,再返回源程序执行。当然在这种跳转中,我们需要保存源程序的关键信息(寄存器的值)这就引出了进程的概念进程就是用来描述一个程序以及其执行过程中的信息的概念进程是描述程序以及反应程序执行信息的数据结构的总和这个数据结构叫做进程控制块**(PCB)**

2023-10-10 07:10:57 82 1

原创 哈工大操作系统--第二章、系统接口——通向操作系统内核的大门

操作系统提供的一些关键函数而普通c代码+关键函数,就构成了连接应用程序和操作系统的关键所在。

2023-10-09 20:07:12 93 1

原创 HIT操作系统学习——系统启动背后的故事

我们看ss和sp这是什么意思呢,由代码可以看到,ss=0x9000,sp=0xFF00,组合ss是栈的地址,而sp是栈顶指针的地址,也就是压栈的时候数值压到0x9FF00的地址处,FF00H转化为十进制非常大,是65280,即偏移量为65280个字节,sp的地址其实就是选取了一个距离要操作的地方的一个比较远的位置,防止对操作位置的数据进行修改。这是很重要的,因为后边的操作还需要用到这些信息,必须确保不会被改变,然后pop操作将存储的寄存器数据重新弹出到寄存器内,注意这里是和压栈时相反的顺序,因为栈的特性。

2023-10-05 19:04:30 111

IO(异常&File&综合案例).md

IO(异常&File&综合案例).md

2023-05-14

空空如也

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

TA关注的人

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