- 2024-11-21[COCI2015-2016#6] PAROVI | 互质覆盖 题解
前言不能在同一个坑上栽第三次!题目链接:原题;加强版。题意简述\(1\simn\)数轴,你可以使用若干条线段\([l,r]\)来覆盖,其中要满足\(\gcd(l,r)=1\)。问你能够完全覆盖数轴的方案数,对\(M\)取模。\(2\leqn\leq10^4\),\(2\leqM\leq10^9+7\)。不保证\(M\)为质数。
- 2024-11-20linux命令head,tail查询日志头部和尾部 & 查询日志的关键字的上下文日志方法
linux命令head,tail查询日志头部和尾部&查询日志的关键字的上下文日志方法tail-n10test.log查询日志尾部最后10行的日志;tail-n-10test.log查询日志尾部最后10行的日志;同上tail-n+10test.log查询10行之后的所有日志;tail尾部,倒着数是负数。配置的是正数的话,则
- 2024-11-19146. LRU 缓存
https://leetcode.cn/problems/lru-cache/description/?envType=study-plan-v2&envId=top-100-liked最近最久未使用,显然我们需要维护一个使用队列,最近使用过的在队尾,未使用过的靠近队首并且他要求函数get必须以O(1)的平均时间复杂度运行显然我们需要用到hashput必须以
- 2024-11-13Lock Free 无锁队列的实现
无锁队列的实现 无锁队列的实现原理一般是利用Retry-loop和CAS等原子操作。现在几乎所有的CPU指令都支持CAS的原子操作,X86下对应的是 CMPXCHG 汇编指令。例如CAS(CompareAndSwap)的实现原理:boolcompare_and_swap(int*addr,intoldval,intnewval){if(*ad
- 2024-11-11郝玩的数据结构1——单调栈,单调队列
栈和队列是很郝咏的Stl,那么,我们手搓——用数组模拟故事背景:辣鸡老o在学单调栈&单调队列——我栈top为栈顶,易得出出栈即top--,入栈++top=(ovo)......——完全不会讲,那么上马:点击查看代码#include<bits/stdc++.h>usingnamespacestd;constintN=114514;intstk[N],top=0;
- 2024-11-0620241107,LeetCode 每日一题,使用 Go 计算两数相加
思路模拟加法:链表存储的是逆序数位,因此从头节点开始,逐位相加可以模拟正常的加法。每两个节点的值相加,并记录进位。逐节点相加:创建一个新的链表,用于存储结果,每次将两个链表对应节点的值加上进位值,结果存储到新链表的节点中。计算过程中,将(l1.Val+l2.Val+carry)相加的
- 2024-11-0620241107,LeetCode 每日一题,使用 Go 计算两数相加
思路模拟加法:链表存储的是逆序数位,因此从头节点开始,逐位相加可以模拟正常的加法。每两个节点的值相加,并记录进位。逐节点相加:创建一个新的链表,用于存储结果,每次将两个链表对应节点的值加上进位值,结果存储到新链表的节点中。计算过程中,将(l1.Val+l2.Val+carry)相加的结
- 2024-11-05使用 Go 语言实现 LRU 缓存
文章目录LRU缓存的关键特性数据结构选型LRU缓存的结构设计操作流程图代码实现1.定义节点和缓存结构2.初始化LRU缓存3.获取缓存值(`Get`方法)4.更新或插入值(`Put`方法)5.辅助方法6.单元测试代码总结在日常开发中,缓存是提高系统性能的重要手段。LRU(LeastRe
- 2024-11-02LeetCode25:K个一组翻转链表
原题地址:.-力扣(LeetCode)题目描述给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值,而是需
- 2024-10-27本地缓存库分析(二):bigcache
文章目录本系列前言整体设计处理并发访问减少GC开销读写流程缓存淘汰性能优化用varint编码复用buffer栈上计算hash值数据结构GetSetDelete过期总结本系列本地缓存库分析(一):golang-lru本地缓存库分析(二):bigcache(本文)本地缓存库分析(三):freecache(未完待续)本地缓存库分析
- 2024-10-24C++ 双端队列实现
#include<iostream>usingnamespacestd;#defineullisize_ttemplate<classT>classDualStack{private: structNode{ Tdata; Node*next; }; Node*head,*tail; Node*p; ullilength;public: DualStack(){ head=NULL; length=0
- 2024-10-24C++ STL queue 的实现
求点赞,求关注,求评论求点赞,求关注,求评论求点赞,求关注,求评论求点赞,求关注,求评论求点赞,求关注,求评论求点赞,求关注,求评论求点赞,求关注,求评论这篇文章很短,直接给代码:#include<iostream>usingnamespacestd;template<classT>classQueue{protected: structnode
- 2024-10-24【数据结构与算法】之队列详解
队列(Queue)是一种重要的线性数据结构,遵循先进先出、后进后出的原则。本文将更详细地介绍队列的概念、特点、Java实现以及应用场景。模运算小复习:a%b的值总是小于b5%4=1 5 %2=11%5=1 4%5=41.队列概念概述想象一下排队买票,先排队的人总是先买
- 2024-10-23数据结构-----------栈和队列后续
1队列1.1概念与结构概念:只允许在一端进行插入数据操作,在另一端进行删除元素特殊的线性表,队列具有先进先出的性质入队列:进行插入操作的的一端叫做队尾出队列:进行删除操作的一端叫做队头下面我们来看一下队列的实现队列其实跟单链表是差不多的只不过队列只允许在队尾插入数
- 2024-10-20【数据结构】队列
- 2024-10-18Linux常用命令
Linux的使用中常用的一些命令如下:查看文档命令:cat:查看文档内容:cat<file>:全部显示一个文件的所有内容,默认不显示行号cat-n<file>:查看文件,同时会显示行数。head:只查看开头的内容head<file>:默认只显示开头的前10行head-n<num><file>:指定显示开头的前num行
- 2024-10-161120 公交换乘
#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintN=1e5+10,inf=0x3f3f3f3f;structnode{intt,p,f;};nodea[N];intn,x,t,p,head=1,tail=1,ans;intfind(intp){for(inti=head;i<tail;i++)if
- 2024-10-15linux基本指令(二)
今天我们继续来盘Linux基本指令,如果对于前面的指令还有困惑,可以去查看之前我写的那一篇Linux基本指令(一)。mv指令(move)语法mv[选项]源文件/目录目标文件/目录功能1.移动文件或目录比如:将文件 file1.txt 移动到 /home/user/Documents/ 目录中:mvfile1.txt/home/user
- 2024-10-09Linux 中6种查看日志命令
Linux查看日志的命令有多种:tail、cat、head、echo等,本文只介绍几种常用的方法。1、tailtail-n10test.log查询日志尾部最后10行的日志;tail-n+10test.log查询10行之后的所有日志;tail-fn10test.log循环实时查看最后1000行记录(最常用的)一般还会配合着
- 2024-10-09UER #7
B.天路题目描述在一根数轴上,有\(N\)个点\(A_1,A_2,\dots,A_N\),你要对于\(\forall2\lek\leN\),求出\(\min\limits_{1\lel\leN-k+1}\{\max\limits_{l\lei<j\lel+k-1}\{|A_i-A_j|\}\}\)。如果对于每个\(k\),你输出的答案\(c_k\)与标准答案\(\widehat{c_k}\)
- 2024-10-05斜率优化 DP
斜率优化DP在单调队列优化过程中,转移方程被拆成了两部分,第一部分仅与\(j\)有关,而另一部分仅与\(i\)有关,因此我们可以利用单调队列仅维护与\(j\)有关的部分,实现问题的快速求解。但仍然有很多转移方程,\(i\)和\(j\)是紧密相关的,这个时候单调队列优化就不适用了,例如如下转
- 2024-10-02P1912 [NOI2009] 诗人小G
题目链接题解:定义算上空格的前缀和\(sum[i]=\sum_{j=1}^{i}len[j]+1\)\(dp[i]=min_{j<i}(dp[j]+|sum[i]-sum[j]-1+L|^p)\)相当于枚举上一行的结尾在哪。可以感性理解一下,i越靠后,最优决策点j一定会往后移。所以决策点具有单调性。我有一个简单的证明,就是列个式子,证明i向后移
- 2024-10-01单调队列优化 DP
单调队列可以\(O(n)\)求出子区间的最值,且顺序上要求区间的左端点和右端点单调不降。引入P1886滑动窗口/【模板】单调队列定义一个队列\(q\),我们让\(q\)中的元素满足单调不降。因此当\(x\)入队时,从前往后让不在当前范围的元素出队,从后往前将\(<x\)的元素全部出队,然
- 2024-09-282. 两数相加题解
题目描述给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以0开头。示例1:输入:l1=[2,4,3],l2=[5,6,4
- 2024-09-27[Python手撕]重排链表
#Definitionforsingly-linkedlist.#classListNode:#def__init__(self,val=0,next=None):#self.val=val#self.next=nextclassSolution:defreorderList(self,head:Optional[ListNode])->None:""&quo