自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STL中的List底层实现

【代码】STL中的List底层实现。

2025-03-05 22:54:27 80

原创 STL中vector容器底层实现

【代码】STL中vector容器底层实现。

2025-03-05 21:46:18 116

原创 微实验4:PPP-LCP报文实验

PPP协议通常用于点对点的链路通信,这意味着通信的两端是明确的,一端是发送方,另一端是接收方。在这种通信模式下,接收方是唯一的,因此Address字段被设置为全1的广播地址(0xFF),表示这个数据帧是发送给链路上的所有设备,但实际上只有预期的接收方会识别并接收它。构建点对点的通道来查看来捕获LCP报文并进行分析。接下来分析一下LCP报文的相关字段内容。首先分析一下这里的PPP帧的结构。然后选择线路然后进行接线。使用的软件:ensp。然后就可以进行查看了。

2024-09-22 19:04:50 985

原创 ORM框架中映射到数据库中字段出现命名转化的问题

【代码】ORM框架中映射到数据库中字段出现命名转化的问题。

2024-09-21 21:09:28 560 1

原创 牛客周赛8题解

小模拟:用一个map来记录数字的位置,在后面判断两个数的abs(mp[a]-mp[b])是不是等于1就可以。所以我们可以把每两个数之和构造n+1和n+2这样极差就是1。有一种贪心的做法是直接找一个叶子然后从叶子开始去模拟遍历。dfs函数的意思是以u为节点fa为u的父节点向下搜的答案。然后每种路径都有两种答案一种是x-y的,一种是反向走的。i的范围是在1-(n+1)/2这里的n+1是上取整操作。如图所示:所以答案一种是ans一种是sum-ans。因此每次取出来一个数我们可以输出i和(n+1)-i。

2023-08-21 11:09:59 288 1

原创 牛客周赛round7题解

如果说区间(r-l)小于l-1的话那说明((b-a)/l和(b-a)/ r)这两个的结果是一样的,在有余数的情况下((b-a)+r-1)/r由于上取整最后的答案是会比(b-a)/l大的也就是说min>max这是不可能的,这种情况下我们就无法得到答案,那就是-1,也就是说min>max这个条件是看余数是不是会比区间大,也就可以解决我们余数判断的疑惑了。这题我们可以开一个ans[i][j]表示数里面2的因子有i个,5的因子有j个的数的个数。125:2的因子个数:0,5的因子个数3个。

2023-08-13 22:01:43 254 1

原创 处理子数组乱写

我们可以用图来看,这里建议大家多手动模拟一下,其实很想是差分,你要枚举的子序列长度越大的话越中间的数被加的次数也就越多。所以可以得出一个结论就是第n个长度的子序列和为ans[i]=ans[i-1]+(s[n-i+1]-s[i])长度是2的我们可以理解为首位被加次数都是1,中间2-n-1的元素都被加了2次。你可以理解成在上一个长度首位不动的基础上,中间的数被加的次数都多了一次。我们假设数组的长度是4起初每一个元素的数值都是x。长度是三的话也是首位只加一次中间的数加了两次。牛客小白月赛 51 平均题。

2023-08-09 17:26:19 151 1

原创 暑假训练17天

我们每一次确定了一个答案之后我们就可以去跑一下存的点,如果边权小于mid我们就可以把这个边加进来,全部结束之后我们去判断每一个子集是不是联通的这个可以用并查集来判断。因为有可能对于一个数x它的管辖的最左侧的位置是x-lowbit(x)+1也就是是说这个x-lowbit(x)+1可能不在我们说的l-r的区间范围内,所以是不可以的。我们可以定义tree[i]为(x-(x-lowbit(x)+1))的最大值这和求区间和的定义是不一样的。但是它再更新答案的时候和求区间的和的那个不一样。先说一下树状数组的操作。

2023-08-02 23:01:43 133 1

原创 牛客周赛5 C题游游的二进制树

我们可以发现二进制每次总的长度变长一位原来的数值就会扩大两倍:这个很好证明比如110。就是我下面循环的时候父节点本来之前的做法是当初-1的但是我们现在当成i自己这样。p

2023-07-30 21:52:42 148 1

原创 暑假训练第14天学习

记忆化搜索其实就是在你暴搜的时候,某些点可以由其他点转移的过程中已经确定答案了,这些点往往可以不用去搜索这样可以减少时间的复杂度。还有一道几乎一样的题目洛谷的3183食物链不过这题要求不可以单独一个点去做食物链。每一次pos==n的时候我们就回溯。这很好办我们只需要去再判断一下。当然sum>r的时候可以剪枝。

2023-07-26 23:34:26 103 1

原创 牛客周赛round4A-D题解(暑假在校集训第13天)

前一个部分有一个隐藏的性质,因为第l-1个数是有机会变成0的但是1-l-1的数都比l-1这个数小,说明当l-1这个数变成0的时候前面1-l-1的数字现在全是0,后面操作都是一样的说明他们操作完之后的数字是一样的,都是ans[l-1]操作完的数。D题直接分别枚举a和b的因子然后把a,b的因子已经a的因子和b的因子的各个乘积装在set里面去重一下就行。A题:大致的题意就是给你一个n和k要你构造出一个长度为n的字符串里面的”you“字串的个数刚好是k个。2.n可以被三整除:答案是n/3-1。

2023-07-23 23:32:03 519 1

原创 牛客周赛Round 1:暑假第二天训练计划

可以看一下上面的图假设now1是pre2变过来的,原来pre1和pre2的0只是互换了,两个位置还是0,但是pre1-now1的路程明显是pre2-now1短的,后面第2个0的位置不变说明后面的答案是没影响的,但是第一个0的代价多了一,所以按顺序移动的代价是最小的。如果算上第i个字符答案子序列和的余数是j的倍数,必须前i-1个字符的余数是j-(s[i]-'0')这样加上(s[i]-'0')时候余数才会是j。子序列可以包含前导零。dp[i-1][(9+j-(s[i]-'0'))%9]是算第i个字符的。

2023-07-04 16:52:13 286

原创 暑假训练第一天 (vp atcoder test 303(A-E))

给你一个字符串,u代表向上走,d代表向下,l代表向左,r代表向右,一个人的初始生命是h,在地图上有m个点有药剂,如果一个人的血量低于k可以把生命回复到k,但是一旦生命小于0就不可以再走了,每次实现字符串的一个操作要减少一个生命,问有没有可能走完字符串的所有操作。我们知道一个菊花图的中心节点度数一定是大于2的那我们直接统计一下度数然后从大到小排列,因为一共有n个节点,每k级菊花图花费k+1个节点我们只需要每次减去(du[i]+1)就行。Syx 是一个码农,但她的键盘不太一样,她的键盘仅由大小写的。

2023-07-02 17:35:05 119 1

原创 生活在树上(牛客小白月赛46D题)

【代码】生活在树上(牛客小白月赛46D题)

2023-06-26 21:02:55 112 1

原创 qsgg and Subarray 二分写法

我们可以知道and运算的性质要想让and运算和为0说明这些数的每一个位置and完都是0。通常在判断区间个数的做法的时候我们通常的做法是先固定一个左端点,然后二分右边端点。那我们知道在第i位上只要有一个数为0那么这些数字and运算完之后就是0。那每个左端点对应的答案就是ans+=(n-l+1);我们可以先按位处理把每一个位置上是0还是1处理一下。那我们只需要二分出最大右端点的最小左位置那就可以了。那怎么写二分的check函数呢?那mid-n这部分都是满足的。我们设置这个答案为mid。

2023-06-24 14:59:37 321 1

原创 bfs和dfs遍历图的n个点的办法

【代码】bfs和dfs遍历图的n个点的办法。

2023-06-24 14:41:52 70 1

原创 洛谷小明的游戏,邮递员送信,拉近距离

没啥好说就是板子1-i跑一次i-1跑一次最后答案就是min(ans,dis[1][i]+dis[i][1]),因为每次送完信他都要跑回来。是0的放在队头多用,1的放在队尾少用,更新最短路的时候我们可以定义一个flag遍历邻点的时候相同flag=0,不同是1,然后直接跑板子。很经典的01bfs,移动上下左右的位置如果和本格子的相同就是0否则是1。然后是spfa和dij两种其实都差不多就是写两个预处理。floyed()吸一下氧是可以过的没吸是40分。每一次加权值是把w用-w赋值。判断负环一般是用spfa。

2023-06-08 10:38:31 174

原创 洛谷2648题解

我们把2飞到5的费用简化成2-5的边权,但是我们2-5的实际上赚的钱是d-w[2][5]样例中是100-150=-50同理5-2是100-120=-20都是负数,也就是说明如果人一直在2-5,5-2之间来回走一直是亏的。简化题意:给定一个有向图:每个点都有点权:d,有些边的边权是0,有些边的边权不是0,如果存在正数环环就输出orz,否则找出这个图的最大的一条最长路的总权。但是假设比如c=170那这样两边都正的那我们走n次钱就是n*(d-w[2][5]+d-w[5][2])一直是变多的。

2023-06-08 00:32:45 79

原创 前缀和算法复习牛客竞赛题库

2、∑i=LRX⊕a[i]\sum_{i = L}^R X \oplus a[i]∑i=LR​X⊕a[i]最大,⊕\oplus⊕表示异或操作(不懂的请自行百度)小a有N个数a1, a2, ..., aN,给出q个询问,每次询问给出区间[L, R],现在请你找到一个数X,使得。即[L,L+1,L+2,....,L+k-1],[R,R+1,R+2,...,R+k-1](R >= L+k)。他想选总共2k道题来做,并且期望他能获得的分数尽可能的大,他准备选2个不连续的长度为k的区间,

2023-05-25 10:36:16 187 1

原创 2023福建农林大学部分校赛题解

当碰到Aa的时候我们累计答案res+=max(suma,sumb)+w[i](这个w[i]是Aa的重量),算完后suma。我们知道如果i是质数那gcd(a[i],i)是等于i的这样就会出现质数这个肯定不行那我们怎么办呢。其实我们可以把Aa作为一个分界点在还没有出现Aa的时候我们就可以当作1,2,4的情况做。但是1,2,3这样的话a[n]和a[n-1]换完是可以的。//比如6,它的质因子有1,2,3,你可以除3变成2。//这样全部的因子*就是=1*2*2*5*1*2*2。

2023-05-20 20:38:40 348 1

空空如也

空空如也

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

TA关注的人

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