- 博客(55)
- 资源 (1)
- 收藏
- 关注
原创 XHCI:eXtensible Host Controller Interface(未完成)
本文参考了以及 《USB: The Universal Series Bus》。代码存储于中的需要先简单了解 PCIe 的数据结构和枚举、检测 UEFI 提供的 PCIe 信息的方法。
2024-06-15 15:31:22
2072
原创 个人项目(玩具)列表(可能会更新)
Description:一个简单的解释器。一些(不存在的)亮点:多文件编译,简单的面向对象(类和继承),跨平台。Description:本人的ACM训练的代码,总结。
2023-11-07 17:09:21
272
原创 模拟赛题解9.13
用Fi表示斐波那契额数列的第i项,其中F10F21。一个数n是k好的当且仅当存在一个单调不降的序列a1k,使得n∑i1kFai。给定T个k,对于每一个k,求出最小的,是k好的数,结果对998244353取模。
2023-09-14 15:54:51
228
原创 神经网络入门
本文主要介绍最基础的神经网络,包括其结构,学习方法,C++的实现代码。Python的代码可以搜索互联网得到。前排提示:本人涉及一丁点数学知识。
2023-08-22 15:42:19
230
原创 迟到的退役寄
Day -8~-2稍微复习了一下各种学过的东西,顺便写一点简单的题保持状态。父母每天都会打电话过来。感觉心理压力并不是很大。Day -1学校组织了一个心理疏导活动(各种小游戏),然后蹭了一顿教师的自助餐,不知道为什么肉菜很多都是辣的。Day 0早上没什么好讲的,中午稍微收拾了一下东西, \(\rm 1:30\) 出发,结果没有大巴,是一辆面包车,车子杂音很大(而且我坐最后一排),在车...
2022-04-21 13:35:00
87
原创 刷(shui)题记录2022.4
[ABC247-F] Cards\(\Rightarrow \rm AT\) 链接转化问题,将每一张牌看成一条边 \((P_i,Q_i)\) ,问题就转化成若干个环的答案积,每一个环的答案都是选择若干边,使得所有点都至少存在一条边被选择的方案。考虑断环为链,可以发现可以用 \(\rm dp\) 解决,设 \(f_x(n,0/1)\) 表示预设第一个点是否选择 \(x\in \{0,1\}\)...
2022-04-11 19:52:00
81
原创 刷题记录2022.3[2]
CF1580D Subsequence\(\Rightarrow \rm luogu\) 链接观察减法部分,可以发现可以用笛卡尔树+树形背包完成,每次合并节点 \(u\) 的两个儿子的时候,假设物品数分别为 \(i,j\) ,那么合并的答案显然要减去 \(2ija_u\) (这里乘二是因为每一对询问两次),如果要选上 \(u\) ,那么还需要减去 \(a_u \times (2\times ...
2022-03-15 21:48:00
49
原创 [WC2011]最大XOR和路径
题目链接\(\Rightarrow \rm luogu\) 链接题解由于异或的自反性,可以首先随便找到一条从 \(1\) 到 \(n\) 的路径,然后加入若干个环,这时候可以认为任何从 \(1\) 到 \(n\) 的路径都可以由这种方式构成,为了找到最大异或和,需要使用线性基,将所有环的异或和加入。但是环的数量显然过多,依然依赖异或自反性,用 \(\rm dfs\) 找到原图的一颗生成树...
2022-03-13 20:06:00
67
原创 CF1292D Chaotic V.
题目链接\(\Rightarrow \rm luogu\) 链接\(\Rightarrow \rm Codeforce\) 链接题解究极缝合题,可用于复习基础知识(雾)首先,答案的节点的选取,一定是在所有关键点组成的虚树上,至于哪一个,可以用换根 \(\rm dp\) 求出。接下来解决求 \(\rm lca\) 和距离的问题。首先是求 \(\rm lca\) ,根据定义,从根,即节...
2022-03-11 22:19:00
50
原创 刷(shui)题记录 2022.3
[CF-1148F] Foo Fighters\(\Rightarrow \rm luogu\) 链接考虑将所有数按照 \(mark\) 在二进制下的位数进行分类,具体而言,设 \(p(x)\) 表示 \(mark_x\) 在二进制下最高的,为 \(0\) 的位置(可以认为 \(p(mark_x)=\lfloor\log_2 mark_x\rfloor\) ),将所有数按照 \(p(x)\)...
2022-03-03 07:34:00
53
原创 min_25筛小记
引言现在有一个积性函数 \(f(n)\) ,需要求出 \(f\) 的前缀和,即给定一个数 \(n\) ,求出:\[\mathrm{ANS} = \sum_{i=1}^n f(i)\]显然,当 \(n\) 较小的时候,即可以用数组存下所有 \(f\) 的值时,可以使用线性筛,但是当 \(n\) 达到 \(1\times 10^{10}\) 时,线性筛显然不能胜任,需要使用 \(\texttt...
2022-02-19 12:59:00
39
原创 刷(shui)题记录 2022.2
[CF-1067E] Random Forest Rank\(\Rightarrow \rm luogu\) 链接对于这题,有一个结论:\[\text{一棵树的邻接矩阵的秩} = 2 \times \text{这棵树的最大匹配组数}\]注意,这里的匹配是指将有边相邻的两个点选为一组,每个点至多在一组中。稍微证明一下这个结论。考虑令 \(\mathrm{rank}~A = k\) 。...
2022-02-14 09:08:00
53
原创 计算几何入门
前言这篇东西大部分都是在瞎bb,大佬们可以选择不看。需要先学一点点线性代数的内容。由于本人太菜,这篇博客只会讨论二维的情况。由于本人太懒,因此会缺少一些示意图。向量点积/数量积一般用 \(\vec a \cdot \vec b\) 表示,有 \(\vec a \cdot \vec b = |\vec a||\vec b|\cos \left<\vec a, \vec b\ri...
2022-02-05 17:41:00
73
原创 线性代数入门
前言这篇东西大部分都是在瞎bb,大佬们可以选择不看。大部分内容来自 \(\rm 3Blue1Brown\) 大佬的视频。需要先学高斯消元。基础向量定义一个 \(n\) 维的向量 \(\vec v\) ,其长度用 \(|\vec v|\) 表示,一般来说,我们可以用一个 \(n\) 元组(可以理解为一个长度为 \(n\) 的序列)表示一个向量,表示方式如下:\[\vec v = (x_{...
2022-01-28 23:23:00
101
原创 决策单调性优化入门
前置知识先学下面的东西单调队列四边形不等式定义对于一个二元函数 \(w(l,r)\),如果有下面的命题成立,则称 \(w\) 满足四边形不等式:\[\forall a \leq b < c \leq d,~w(a,c)+w(b,d) \leq w(a,d) + w(b,c)\]定理如果二元函数 \(w(a,b)\) 满足 \(w(a+1,b+1)+w(a,b) \le...
2022-01-11 21:37:00
52
原创 刷(shui)题记录 2021.12[2]
[CF-1373G] Pawns\(\Rightarrow \rm luogu\) 链接将问题转化一下,可以认为是一个数轴上有若干个点,初始的时候某些位置可能会有多个点,每个点可以向右移动,问最优策略下移到最远的点的坐标,支持增加/删去一个点。首先考虑没有增加删除操作要怎么做,可以想到逐个加入考虑数轴上的点,将其移动到其初始位置往右(包括初始位置)第一个空的位置即可。可以发现点的考虑顺序并...
2021-12-23 16:33:00
73
原创 拉格朗日插值入门
引子拉格朗日插值可用于求一个用 \(n+1\) 个点确定了表达式的 \(n\) 次多项式某一个点的纵坐标。算法本身例题\(\rm{luogu}\) 有模版。现给定 \(n+1\) 个点,其中第 \(i\) 个点用 \((x_i, y_i)\) 表示。这 \(n+1\) 个点显然确定了一个 \(n\) 次多项式 \(f(x)\) ,现在给定 \(k\) ,求 \(f(k)\) 。答案对 ...
2021-12-21 15:02:00
52
原创 刷(shui)题记录 2021.12 [1]
[ABC228-G] Digits on Grid\(\Rightarrow\)原题链接可以发现行数和列数相当小,可以将其中一维状压,同时因为奇数步和偶数步的操作很类似,只需要考虑其中一种就行了,这里考虑奇数步。设 \(f(S)\) 表示当前位置所在的行的集合为 \(S\) 的方案数,接下来我们需要计算出 \(g(S)\) ,其意义是所在的列的集合为 \(S\) 的方案数,这时候我们从 \...
2021-12-08 15:14:00
70
原创 刷(shui)题记录 2021.11
[JOISC2020] 首都⇒\Rightarrow⇒原题链接可以想到,答案实际上是选择的城市数量减去 111 。选择的城市的所有城镇要连成一个联通块,那么对于属于同一个城市中的两个城镇 x,yx,yx,y ,假如选择了这个城市,那么路径 (x,y)(x,y)(x,y) 上所有的城镇所属于的城市都要被选择。因此可以建一个新图,对于路径 (x,y)(x,y)(x,y) 上的所有除 x,yx, yx,y 的点 ppp ,建边 Cx→CpC_x\rightarrow C_pCx→Cp 。那么答案就等于新
2021-11-03 20:27:07
266
原创 刷(shui)题记录 2021.10 [2]
[ARC111-C] Too Heavy⇒\Rightarrow⇒原题链接首先判断无解:∃i∈[1,N],pi≠i且bpi≥ai⇔无解\exists i \in [1, N], p_i \ne i \text{且} b_{p_i} \ge a_i\Leftrightarrow \text{无解}∃i∈[1,N],pi=i且bpi≥ai⇔无解接下来用 pip_ipi 建个图 ∀i∈[1,N],i→pi\forall i \in [1, N], i \rightarrow p_i∀
2021-10-29 11:12:51
182
原创 刷(shui)题记录 2021.10 [1]
[P6822] [PA2012]Tax⇒\Rightarrow⇒原题链接Tag: 建模\text{Tag: 建模}Tag: 建模考虑将无向边拆成两条有向边,化边为点。一种显然的暴力就是将一个点的入边和出边两两建边,边权就是入边出边的边权最大值,但是这样边数是 O(m2)O(m^2)O(m2) 的。考虑一个点的所有出边,将其排序,得到边序列 {en}\{e_n\}{en} ,显然的,我们可以将相邻两条边对应的点连边:ei−1→wei−wei−1eiei→0ei−1\begi
2021-10-27 14:53:03
196
原创 欧拉序求LCA
0 例题引入给定一个有 nnn 个节点的树,然后有 qqq 次询问,每次询问两个节点 u,vu, vu,v 的 LCA\rm{LCA}LCA 。1≤n≤3×105,1≤q≤1071 \leq n \leq 3 \times 10^5, 1 \leq q \leq 10^71≤n≤3×105,1≤q≤1071 讲解可以发现,倍增和树剖都会 TLE\rm{TLE}TLE ,因为每次询问都是 O(log2n)O(\log_2 n)O(log2n) 。1.1 欧拉序1.1.1 构造方法实际上是一个
2021-09-23 14:16:05
866
2
原创 可持久化的线段树和并查集
1. 可持久化线段树1.1 可持久化概念一个数据结构被认为是可持久化的,当且仅当它满足下面的性质:可以回溯到某个历史版本(包括分支)。可以修改某个历史版本(包括分支)并产生新的分支。不太懂的 dalao\rm{dalao}dalao 们可以联想 git\rm{git}git 的版本控制。(如果没有用过 git\rm{git}git 的话…当我没说)1.2 可持久化数组这个是一切可持久化数据结构的基础。⇒\Rightarrow⇒ 洛谷原题现在有一个长度为 nnn 的序列,依次执行
2021-08-15 21:22:45
182
原创 线段树优化建图的速成
前言这个东西比较简单易懂。正文问题引入 ⇒\Rightarrow⇒ CF786B (PLUS)现在有一个 n(1≤n≤105)n(1 \leq n \leq 10^5)n(1≤n≤105) 个节点的有向图,现在给出 m(1≤m≤105)m(1 \leq m \leq 10^5)m(1≤m≤105) 条信息描述这个图的边,信息有三种:给出三个数 u,v,wu,v,wu,v,w,表示连接一条有向边 (u,v)(u,v)(u,v) ,权值为 www。给出四个数 u,l,r,wu, l, r, wu,
2021-04-03 20:47:53
749
原创 高斯消元入门
问题现在有一个 nnn 元一次方程组,类似下面这个样子:{a1,1x1+a1,2x2+...+a1,nxn=b1a2,1x1+a2,2x2+...+a2,nxn=b2...an,1x1+an,2x2+...+an,nxn=bn\begin{cases} a_{1,1}x_1+a_{1,2}x_2+...+a_{1,n}x_n = b_1\\ a_{2,1}x_1+a_{2,2}x_2+...+a_{2,n}x_n = b_2\\ ...\\
2021-02-24 22:23:45
225
原创 Experience in senior high & NOIP 2020
之前那个写的不好,再写一遍吧。达成成就:上高中了!达成成就:来到了全是大佬的有为班!不得不说强者就是强者,不仅学习成绩全面碾压本 juruo\rm{juruo}juruo ,而且每个人都是多才多艺,对各种时事的理解比某些时事评论员还深刻(似乎)。国庆前四天疯狂写作业,写笔记,不得不说高中的作业量还是很大的,后四天搞 OI\rm{OI}OI 感觉状态还行,但是好像没什么长进。感觉时间过得越来越快了,本来以为还有一会才会到的一检一下子就来了,而且本人经过中考之后的颓废,状态比初二的时候还糟糕,
2020-12-14 21:01:07
193
1
原创 [题解][LG-P6811]「MCOI-02」Build Battle 建筑大师
⟹\Longrightarrow⟹原题链接给定一个序列长度 NNN 和 QQQ 个询问,每次询问给定循环大小 MMM。每次询问,先生成一个长度为 NNN 的序列,其中第 iii 个位置为 (i−1) mod M+1(i - 1)~\mathrm{mod}~M+1(i−1) mod M+1,比如当 N=7,M=3N=7,M=3N=7,M=3 的时候生成的的序列就是 {1,2,3,1,2,3,1}\{1,2,3,1,2,3,1\}{1,2,3,1,2,3,1} 。接着
2020-12-04 16:15:41
136
原创 暴力搜索初探
单纯的暴力搜索就不讲了。技巧1.1 折半搜索这个东西有另外一个名称叫 Meet in the middle\mathrm{Meet~in~the~middle}Meet in the middle 。这个东西可以解决整个规模比搜索可以解决的规模大一倍的题目,这样我们可以将枚举分成前一部分和后一部分,然后将前一部分和后一部分的答案结合起来就可以了。当然了,为了将答案合起来,我们记住的东西一定要有类似结合率的东西(废话)Example&nbs
2020-12-04 08:42:31
314
原创 [题解][LG-P3573][POI2014]RAJ-Pally
设 f(u)f(u)f(u) 表示从节点 uuu 出发的最长路,g(u)g(u)g(u) 表示到 uuu 结束的最长路,这两个 dpdpdp 的转移都比较显然,就不说了。那么经过一条边 (u,v)(u,v)(u,v) 的最长路就是 g(u)+1+f(v)g(u) + 1 + f(v)g(u)+1+f(v)。用 orduord_uordu 表示节点 uuu 的拓扑序。删去了一个节点 uuu 之后,我们将节点按照拓扑序分成两部分 A,BA,BA,B, 其中 AAA 的节点的拓扑序小于 orduord_uo
2020-11-30 16:24:07
107
原创 [题解][UVA-1205]Color a Tree
⟹\Longrightarrow⟹原题链接首先是一个错误的贪心:每次选择一个当前可以染色的权值最大的节点进行染色。反例也容易找,只需要在一个权值很小的节点下面放一堆权值很大的节点,然后在另一颗子树中放一个比那个权值很小的点大一点点的节点就好了。但是这个贪心可以给我们一些启示,当我们染了一个有儿子的点之后,这个点的权值最大的儿子一定会在接下来立刻染色。既然这两个点是相继被染色的,那么可以将其合并成一个点,但是合并之后的节点的权值到底如何计算,这是个问题。现在假设有三个节点,他们的权值分别是 a,b,c
2020-11-28 22:59:20
250
原创 [题解][LG-P3943]星空
⟹\Longrightarrow⟹原题链接很妙的一道题,本juruo\mathrm{juruo}juruo在考场上做不出来。思路错了,干瞪眼半天看不出做法。因本人喜好,将原题的0/10/10/1调换了。(雾)对区间进行操作,(可以看成)最后才观察答案(如果是暴力),那么可以(比较难)想差分。对区间[l,r][l,r][l,r]取反,就是在差分数组f1...n+1f_{1...n+1}f1...n+1中fl,fr+1f_l,f_{r+1}fl,fr+1分别取反,同时,当存在ai=pa_i=pai
2020-11-27 22:10:44
131
原创 [题解][CF-891C]Envy
⟹\Longrightarrow⟹原题链接有的dalao\mathrm{dalao}dalao说这道题可以用虚树写,但是本人想不到。考虑使用Kruskal\mathrm{Kruskal}Kruskal建立最小生成树的过程,可以发现一个性质:当我们考虑了所有边权≤w\leq w≤w的边,无论我们使用的是哪些边,构成的最小生成森林的连通性一定是一样的。也就是说,对于一个询问中的权值不同的边,可以分开判断。考虑判断一些权值相同(假设为WWW)的边是否可以放到同一颗生成树中。暴力地想,可以给它们还原一个考虑
2020-11-27 21:06:57
217
原创 [题解][UOJ-139]被删除的黑白树
⟹\Longrightarrow⟹原题链接题意:给定一颗有nnn个结点的树,初始时所有节点都是白色的,现在要将一些节点染成黑色,要求所有叶子节点到根节点的路径中黑色节点的个数相同。问最多可以将多少个节点染成黑色。用(u,v)(u,v)(u,v)表示uuu到vvv的一条路径,用w(u,v)w(u,v)w(u,v)表示路径(u,v)(u,v)(u,v)上的黑色节点个数。贪心地想,可以发现对于所有叶子节点uuu,满足:lim=w(root,u)=minv∈leaves{dep(v)}lim = w(ro
2020-11-25 20:50:52
98
原创 [题解][CF-1292C]Xenon‘s Attack on the Gangs
设szroot(u)sz_{root}(u)szroot(u)表示以rootrootroot为根,子树T(u)T(u)T(u)的大小, faroot(u)fa_{root}(u)faroot(u)表示以rootrootroot为根,节点uuu的父亲。这两个东西可以O(n2)O(n^2)O(n2)预处理。转化一下问题:ans=∑x=1n−1∑u,v∈V[mex(u,v)≥x]ans=\sum\limits_{x = 1}^{n - 1} \sum\limits_{u,v \in V} [\mathr
2020-11-25 15:44:52
110
原创 [题解][LG-P3791]普通数学题
可以想到将ddd函数的前缀和转化一下:Sd(i)=∑i=1nd(i)=∑i=1n⌊ni⌋S_d(i)=\sum_{i=1}^n d(i)=\sum_{i=1}^n \left\lfloor\frac{n}{i}\right\rfloorSd(i)=i=1∑nd(i)=i=1∑n⌊in⌋那么就可以求出O(n)O(\sqrt{n})O(n)求出每一个前缀和了(整除分块),加上一个unordered_map去除不必要的计算。将问题修改一下:i≤n,j≤m⟶i<n+1,j<m+1i
2020-11-25 14:30:09
245
原创 不定时更新的日记
202011.9开始写大事记,主要是因为自己现在连上个星期的重要事情都忘得差不多了。CSP2020\mathrm{CSP2020}CSP2020不出所料地炸掉了,T1\mathrm{T1}T1写挂了,T2\mathrm{T2}T2小细节忘处理,T3\mathrm{T3}T3降智,想不出正解,T4\mathrm{T4}T4没收时间打,交了个简单的水分就匆匆收场了。...
2020-11-09 20:23:17
189
原创 [题解][JS2008]魔兽地图
⟹\Longrightarrow⟹题面题解其实刚看着道题的时候是一脸懵逼的(雾)。然后想到使用dp,但是依然一脸懵。但是看到这个极其小的NNN和装备数量限制让我明白加维是不可避免的。首先可以发现,子树中的节点信息可以对子树的根节点产生影响,这一点和NOI2020D1T2有点像(但是那题我不会做,因为不太懂线段树合并),而本题的信息就是这个节点所代表的装备有多少是留下来作为价值贡献的,有多少是上交作为更高级武器的材料的,但是我们显然只需要记住其中一个,因为我们还需要记住这个子树中总共使用的金币数。
2020-11-05 20:10:53
124
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人