摘要: 学习xuzishuai在代码下面写题解 A: 把相同的球合并,模拟一下即可 B: 对于这种区间计数题,我们可以枚举左端点,然后用双指针扫最远的右端点使得区间内的数都>=y,<=x。然后左边就是x,y第一次出现的位置的max C: 最后搞出的肯定是两个相同的,操作可以让两个数的差增加/减少3,排序后三 阅读全文
posted @ 2025-07-09 10:32 wuhupai 阅读(10) 评论(0) 推荐(0)
摘要: 一坨屎模拟赛 A: 班里没人会csp组t1正解(省选班的没看)真的搞笑 其实不难啊,也挺套路的 题目转化为模意义下的加法 区间加差分变为单点加.最后答案就是差分数组里所有正数之和 那么我们可以给一个数+4,然后给后面一个数-4.首先差分数组里所有数\(-3\le a_{i}\le 3\)那么我们+4 阅读全文
posted @ 2025-07-09 10:32 wuhupai 阅读(6) 评论(0) 推荐(0)
摘要: nxt 是与当前串最长后缀在 trie 上出现的位置。 如何求 nxt,利用 BFS,\(\text{nxt}[\text{son}[i]['a']] = \text{son}[\text{nxt}[i]]['a']\) 如何匹配,有个天真的想法是枚举匹配串的前缀,看有多少串是这个前缀和后缀,但这样 阅读全文
posted @ 2025-07-09 10:32 wuhupai 阅读(16) 评论(0) 推荐(0)
摘要: SAM 是一个自动机,描述了所有子串,然后它节点数是满足上述条件的自动机中节点数最少的。 很神奇的东西,初看没有任何规律可言。 前置知识 endpos $endpos(t) $ 是 $t $ 在 $s $ 中所有结束位置。显然,SAM 中的每个状态对应一个或多个 $endpos $ 相同的子串。换句 阅读全文
posted @ 2025-07-09 10:31 wuhupai 阅读(31) 评论(0) 推荐(0)
摘要: 我们用 \(sa[i]\) 代表排名为 \(i\) 的是哪个字符串,\(h[i]\) 为第 \(i\) 个字符串的排名。 普通的排序是 \(O(n^2\log n)\) 的,我们考虑先按照第一个和第二个字符为关键字排序。 我们先对第一个字符排序,然后就得到了几个串的初始,然后再按照第一个+第二个排序 阅读全文
posted @ 2025-07-09 10:31 wuhupai 阅读(7) 评论(0) 推荐(0)
摘要: 过于困难了一点 T2: 如果按照一直取num/b自己能赢,那么我们要证明无论b怎么取,a都能回到正轨。这是一个比较常见的思路。 但是此题不平凡的数据范围又给了我们启发,n<=20 我们每一个人每次都取一个,那么就是 对于多堆的游戏,其状态就是每一堆的sg函数的异或 那么暴力把sg搞出来,我们看下规律 阅读全文
posted @ 2025-07-09 10:30 wuhupai 阅读(2) 评论(0) 推荐(0)
摘要: 貌似做过了 T1: 考虑找到一种设计状态的方式。怎么样独立。我们考虑只枚举一行,转化一下题意吗? 我们设dpi为做完i行的贡献。好吧i,j有1代表i行j列必须有一个取,我们要染最少的行和列。考虑容斥一下,考虑去掉i,j的某几行,去得尽可能多。那么i,j只能删一个,不会谔谔。考虑i向j连边,要求的就是 阅读全文
posted @ 2025-07-09 10:30 wuhupai 阅读(3) 评论(0) 推荐(0)
摘要: 两道模拟,但是给了很强的大样例!出题人真良心! T1&T2:模拟,函数化编程很重要 周邦强迫我写了两篇题解 T3: 这题胡了个的树剖做法,但是比较详细 使用树剖,里面的线段树维护如下。 T4: 考虑建图。对于每个询问,我们可以二分答案,二分最小能量,然后将所有能量<=mid的点都加进去,判断图中最长 阅读全文
posted @ 2025-07-09 10:30 wuhupai 阅读(8) 评论(0) 推荐(0)
摘要: t1太过简单t2原 T3: 2^i在模998244353时每24个一循环,那么题目就变成了 有一个数列,初始值为0,区间+1,对24取模,求区间对应的下标的值和。显然有个分块做法吧,块内暴力修i,块外暴力修值。这样是过不了的。考虑使用线段树。我们要怎么做才能做到快速维护呢?我们线段树维护区间内位移0 阅读全文
posted @ 2025-07-09 10:30 wuhupai 阅读(4) 评论(0) 推荐(0)
摘要: T1: 直接n*2^m次方就好了,能拿80分。具体可以用哈希实现。gyc说是lyc出的,要用高维前缀和,这直接不会了。 补一下。我们容斥一下。首先枚举字符串i,j,将他们相同的下标集合称作si,j。如果有一个集合属于这n^2个集合的其中一个,那么就不可以。我们考虑在一个最大的集合打标记,然后不停往下 阅读全文
posted @ 2025-07-09 10:29 wuhupai 阅读(4) 评论(0) 推荐(0)
摘要: T1: 感觉是神仙结论题,打爆搜状压跑了 题目看错了。 首先只能有一个联通块,然后我们就随便删了 T2: 博弈论。发现每个人只有添一个数和零个数的情况。如果没有这个限制,那我们就是偶数个数字就是先手败,奇数就是后手败。如果一开始是偶数,先手就会将它继续搞到偶数,也就是变成1。额,考虑转化为nim游戏 阅读全文
posted @ 2025-07-09 10:29 wuhupai 阅读(13) 评论(0) 推荐(0)
摘要: T1: 考虑如何得到集合i,我们。我们直接给出能得到集合 {i} 的充要条件: 设覆盖i的下标集合为Si,能得到{i}当且仅当对于任何j≠i,sj≠si 证明如下: 若存在 j≠i 使得 ,则在所有生成的集合中,i,j 要么都在里面,要么都不在里面,因此不可能生成集合 {i}。 否则,我们将所有不包 阅读全文
posted @ 2025-07-09 10:28 wuhupai 阅读(8) 评论(0) 推荐(0)
摘要: T1: lcp?tm我昨天刚刚学完SA啊?往后缀这个方向想 T2: 感觉比较可做,我们要维护一个数据结构,支持合并两个集合 如果合并的一个树的节点,那么就暴力缩,如果合并的不是一个树的,那么就并查集搞一下,如何快速维护一个路径上的所有点,其实不用维护。只要记录下每个节点的fa就可以了全部假了。不妨对 阅读全文
posted @ 2025-07-09 10:28 wuhupai 阅读(4) 评论(0) 推荐(0)
摘要: T1: 考虑贡献即可 T2: 提示是大分讨。想一下 列不等式,发现分成k段,下标%k相同的得递增 然后就是xx??xx?? 对于连续一段??如果x T3: 提示是换根dp 对于每个点都求,我们还可以换根dp,我们dp[u]就是当前点的答案,我们换根dp有个向上的g,有个向下的f。向下的简单,就是\( 阅读全文
posted @ 2025-07-09 10:27 wuhupai 阅读(4) 评论(0) 推荐(0)
摘要: T1: 疯狂二分 T2: 不会 发现\(k>\log n\)可以直接等于0,考虑把这个压进dp方程里。也就是设\(dp_{i}\)为区间内覆盖了i个区间的方案数,发现无法转移。这个也简单,就是再维护一个前缀,一个后缀即可。发现一个询问只会涉及到\(\log n\)种线段树,时间复杂度\(\log^{ 阅读全文
posted @ 2025-07-09 10:27 wuhupai 阅读(5) 评论(0) 推荐(0)
摘要: T1: 离线二分树状数组 T2: 拆位,从低位向高位考虑。首先最低位是可以确定的。没有了低位,我们发现ci的值与ci-1无关,那么这位就是a[i]+b[i]的二进制最低位,这就不会变了。那把这一位丢掉不就行了?为什么一定有解呢,因为ci的值与ci-1无关。 阅读全文
posted @ 2025-07-09 10:27 wuhupai 阅读(4) 评论(0) 推荐(0)
摘要: T1: 往根号分治上面想了,然后t飞了。还是从质因数分解的角度上考虑。对于这种大的数进行质因数分解通常可以。除点小的,然后大质数只有一个了。同样的,我们将<根号n的分解了,那么大于根号n的三次方只有一个了,这时候用二分即可。 T2: 学一下。 T3: 首先可以最小生成树,如果是边则直接加,如果是点则 阅读全文
posted @ 2025-07-09 10:27 wuhupai 阅读(5) 评论(0) 推荐(0)
摘要: //时间,值域 1e6-1e9 set 863ms multiset 597ms map 1150ms 我的fhq 600ms treap1 560ms 01trie 450ms priority_queue 90ms 测试:加入一个数,删除一个数,查询某个数的数量 优先队列快那么学一下吧,支持任意 阅读全文
posted @ 2025-07-09 10:26 wuhupai 阅读(5) 评论(0) 推荐(0)
摘要: D: 这种有两个的限制的单调栈我们一般是做两遍。然后发现WA了几个点,发现是有些连着的三个数的会没判到,那么我们只要在奇数位上做一遍,偶数位上做一遍即可。 E: 可不可以离线?好像没什么用。把式子写出来,有单调性,两个函数,直接二分就可以了。不会真的有人判两个单调函数的min用三分吧? F: 容易设 阅读全文
posted @ 2025-07-09 10:25 wuhupai 阅读(4) 评论(0) 推荐(0)
摘要: 好玩爱玩。 我们将 \(lca(u,v)\) 复制一遍,然后有 \(lca(v,u)\)。然后把 \(lca(x,y)\) 这个询问挂到 \(x\) 上,其值为 \(y\)。然后进行 \(dfs\),每个点的并查集存的是当前子树集合已经遍历过的最小的点。所以如果这个点有询问,如果y已经被访问过了,那 阅读全文
posted @ 2025-07-09 10:25 wuhupai 阅读(7) 评论(0) 推荐(0)
摘要: 定义 \(\sum p_{i}x_{i}\) 性质 若 \(C\) 是常数,则有 \(\mathbb{ E } ( C ) = C\)。 若 \(X\) 是随机变量,\(C\) 是常数,则有 \(\mathbb{ E } ( C X ) = C \mathbb{ E } ( X )\)。 若 \(X 阅读全文
posted @ 2025-07-09 10:25 wuhupai 阅读(25) 评论(0) 推荐(0)
摘要: C 我怎么吃了5发罚时 D 手玩一下发现是任意一个黑点的左上方没有白点,树状数组即可 E dfs暴力枚举组合数,T了?那就正难则反,将选的数倒过来即可 F 一眼dp,然后场上写的是dp[i][j]代表s匹配到第i位用了j此操作最多能匹配到t的哪个位置,这显然是错误的。因为删数的话就不太行。还是传统的 阅读全文
posted @ 2025-07-09 10:24 wuhupai 阅读(3) 评论(0) 推荐(0)
摘要: AB 简单 C:数位dp复健 D:普通广搜 E: 发现最终的答案肯定有很多0。然后一个数被整除也有一些很好的性质,比如被2整除就是最后一位。然后我们可以根据n的大小来搞出一些情况来分类讨论,考场上是想到这里,但不敢再想下去了。比如2....0和2....1可以,8....0和8....1可以。然后就 阅读全文
posted @ 2025-07-09 10:24 wuhupai 阅读(7) 评论(0) 推荐(0)
摘要: -33警钟长鸣 E: 有点像反悔贪心,结果没写出来。直接二分答案即可,谔谔了。 F: 感觉有点像dp,没写出来,感觉很难写。对于a=b特判,然后发现如果距离超过400那么每个点都可以到达了。然后可以借此优化dp G: 考虑从E入手,发现一个区间的最优答案一定包括,全选左边和右边。然后考虑使用莫队,考 阅读全文
posted @ 2025-07-09 10:24 wuhupai 阅读(3) 评论(0) 推荐(0)
摘要: 无聊 分块,每个块内做 \(ST\) 表,然后所有块做 \(ST\) 表,块长取 \(\log n\) 时最优。 时空 \(n\ log{log \ {n}}\) 数据随机,块长设为 \(\sqrt{n}\) 块内暴力处理前后缀 \(max\),然后对于整块直接 \(l,r\) 暴力做,就是 \(\ 阅读全文
posted @ 2025-07-09 10:23 wuhupai 阅读(12) 评论(0) 推荐(0)
摘要: 感觉就是manacher和AC自动机的结合体 构造PAM 每个节点代表一个回文串,这个回文串是从根走到这个点在走上去 我们从如果从前面继承 我们设 \(fail[i]\) 为作为 \(i\) 后缀的最长回文串所在的状态,\(len[i]\) 为这个状态回文串的长度。 首先我们的结构是两颗 \(tri 阅读全文
posted @ 2025-07-09 10:23 wuhupai 阅读(8) 评论(0) 推荐(0)
摘要: F: 考场上脑抽了,发现K不是特别大。然后考虑这个可以干什么。我们先排序,然后我们发现ijk>K,的必然不可能,然后使用nth-element即可。 还有一种做法,我们使用优先队列,先push进{1,1,1},然后就pushi+1,j+1,k+1,这样我们取到第K个的时候我们可以保证前面比这个小,然 阅读全文
posted @ 2025-07-09 10:22 wuhupai 阅读(7) 评论(0) 推荐(0)
摘要: E: 有一个贪心,就是每次尽量选价格小的物品,这个可以使用优先队列,但是这个东西太大了。考虑优化。我们二分最终的价格,这个二分的也很好算,平方差公式即可,然后注意边界。我们最终二分出来的答案,是只能取一部分的,然后判断一下即可。 F: 询问离线平衡树 阅读全文
posted @ 2025-07-09 10:21 wuhupai 阅读(4) 评论(0) 推荐(0)
摘要: A: 类似一个合并块的东西,一开始有n个块,我们的操作只能合并距离为1的两个块。然后最终状态我们是知道的,然后要特判一下,如果最终开头为0,那么肯定是不行的。最终的肯定是隔离开的。[l1,r1],[l2,r2],然后操作只在这个区间之内,那么我们就可以先判断两端是否符合条件,然后直接输出,然后最后再 阅读全文
posted @ 2025-07-09 10:21 wuhupai 阅读(5) 评论(0) 推荐(0)
摘要: 对于一个 \(i\),我们要知道 \((i,len)\) 和 \((1,len)\) 的 \(lcp\) 我们可以使用Z函数,这个是被 \(SA\) 单 \(log\) 完全取代的。但是算法比较有意思,学一下。我们维护当前能匹配到的最大的右端点。 **** 然后我们要匹配后面的。首先,我们的最大值一 阅读全文
posted @ 2025-07-09 10:21 wuhupai 阅读(21) 评论(0) 推荐(0)
摘要: 20min终于战胜 将一颗树变成了长度 \(n-2\) 的序列 将树变成 \(prufer\) 序列 每次找到编号最小的叶子,然后将有连边的那个点加到序列里面。 首先,对于一个不同的树,这个序列肯定不一样,毕竟有两个点父亲都不一样。每次编号最小那么就是不重复。因为每颗无根树都可以映射到一个 \(pr 阅读全文
posted @ 2025-07-09 10:20 wuhupai 阅读(17) 评论(0) 推荐(0)
摘要: A: 考虑判定,我们ABC的数量必须同奇同偶。这样就是可以做掉的。这个n很小啊。我们设dp[i][j][2][2][2]为做到第i位已经有j个子串符合条件且1-i,a,b,c,数量为奇,偶的方案数。这个其实前面。我们总共就四种情况,一个子串已经合法,再+a合法,再+b合法,再+c合法。所以我们dp[ 阅读全文
posted @ 2025-07-09 10:20 wuhupai 阅读(4) 评论(0) 推荐(0)
摘要: 泰勒展开 感觉好有用啊,学一下 其实很简单。数学中,泰勒公式是一个用函数在某点的信息描述其附近取值的公式。如果函数足够平滑的话,在已知函数在某一点的各阶导数值的情况之下,泰勒公式可以用这些导数值做系数构建一个多项式来近似函数在这一点的邻域中的值。泰勒公式还给出了这个多项式和实际的函数值之间的偏差。 阅读全文
posted @ 2025-07-09 10:20 wuhupai 阅读(49) 评论(0) 推荐(0)
摘要: A: 两个数交换位置,然后后面那个数+k 考虑枚举最后的顺序,那么这时候的数列。构造一下吧。因为我们发现可以不断横跳,这样就给两个相邻的数都+k,这很好,但是我们最多也只能做到这个了,或者我们随机交换,但是没这个脑子。额,正解就是随机,因为这个限制非常松。我们会想到冒泡排序。我们直接如果a[i]>a 阅读全文
posted @ 2025-07-09 10:19 wuhupai 阅读(3) 评论(0) 推荐(0)
摘要: min-max容斥, \(max(S)=\sum_{T \in S} min(T)*(-1)^{|T|+1}\) 考虑证明 将S的元素降序排序,设\(a_{k}\)为第\(k\)个元素 如果\(min(T)=a_{1}\),贡献为\(a_{1}\) 如果\(min(T)=a_{k}\),那么这个集合 阅读全文
posted @ 2025-07-09 10:19 wuhupai 阅读(111) 评论(0) 推荐(0)
摘要: 基于轮廓线dp。 插头:我们当前会有一条轮廓线,这个轮廓线上有\(m+1\)个数,然后我们状压压的就是轮廓线上有没有插头。就比如说 _____,然后每根线上如果存在插头的话,那么方向就是固定的 _____| 我们的轮廓线最好是逐格转移,这样我们每转移到新的一个就至多有2个插头。然后我们的状态是直接滚 阅读全文
posted @ 2025-07-09 10:19 wuhupai 阅读(10) 评论(0) 推荐(0)
摘要: E: 考虑从回文中心向外拓展。我们的回文串中心要么是一个点,要么就是一条边,然后全部都push进一个队列里。然后枚举出边转移即可。 发现这个东西实在太不优美了。 我们设f[i][j]还是从i到j的最短回文路径 g[i][j][col]为第一条边为col,其余边为回文路径 我们g[i][j][col] 阅读全文
posted @ 2025-07-09 10:18 wuhupai 阅读(5) 评论(0) 推荐(0)
摘要: E: 求的是一个最短路。本来特别蠢,想的是dij的dis数组再加一维,但是惨痛的教训告诉我们这个要建分层图。所以我们一个是正图,一个是反图,然后中间连边边权为x,然后直接最短路,可以用bfs吗?显然不可以。 F: 我们的H显然是越小越容易满足,既然确定了H,那么代价就确定了,然后我们就只有一个要判定 阅读全文
posted @ 2025-07-09 10:18 wuhupai 阅读(6) 评论(0) 推荐(0)
摘要: 我们记录下这个区间的完全上位线段,如果不是完全上位,那么就往下传,所以我们x点的答案必然是从线段树那个点往上的所有线段的最大值,因为把不优的答案全部都优化掉了。 具体而言,我们把一条线段拆成log条线段,然后对于每条,往下传。往下传的时候比较中点处的数值。我们更新必定只往一个方向递归,所以时间复杂度 阅读全文
posted @ 2025-07-09 10:17 wuhupai 阅读(13) 评论(0) 推荐(0)
摘要: 很神奇的东西。 https://www.cnblogs.com/yfzqwq/p/18492754 将某些物品修改,使得选择不受限,再把修改的影响消除。当我们修改到一个值的时候,刚好切到m了,然后这个最大的截距就是答案了。前面都很清楚了,主要是后面斜率如果一段相同怎么办呢?我们直接选m个数就行了是吧 阅读全文
posted @ 2025-07-09 10:17 wuhupai 阅读(11) 评论(0) 推荐(0)
摘要: 一个比较巧妙的算法 这个东西可以处理。1、一些操作只在某一特定时间段生效 2、查询某一时间点上所有操作的结果。我们可以对时间建立一棵线段树,把操作挂在线段树对应节点上,询问挂在叶子节点上,然后从根节点开始从左到右遍历线段树。每次进入一个新节点就完成当前节点处挂的操作,从某一结点回溯时把它上面挂的操作 阅读全文
posted @ 2025-07-09 10:17 wuhupai 阅读(9) 评论(0) 推荐(0)
摘要: 线性基可以维护一个数的集合,其值域为\(2^n\),那么它数组的长度为\(log_{n}\)。 我们从集合里挑出一些数二进制下最高位为\(i\)的位置,然后把他放进去,数组中的每一个位置只有一个原来集合里的数,且其最高位为\(i\)。性质是原来集合每个数都可以被这个表示出来。 如何判断原集合中的数是 阅读全文
posted @ 2025-07-09 10:17 wuhupai 阅读(20) 评论(0) 推荐(0)
摘要: ycz去年省选前就会了 虚树应该是一种算法,我们假如有\(k\)个关键点,然后我们要剖出包含这\(k\)个点的一棵树,其中祖先关系并不会改变。 单调栈建虚树好像简单一点 我们栈里面第一个数是\(1\)号节点。然后我们单调栈里面维护的是虚树的一条链。如果新的一个点和链底\(lca\)是链底,那么就\( 阅读全文
posted @ 2025-07-09 10:16 wuhupai 阅读(9) 评论(0) 推荐(0)
摘要: 非常好,学习一下科技,这下可以爆踩树剖 全局平衡二叉树 性质 全局平衡二叉树是一种可以处理树上链修改/查询的数据结构,可以做到: \(O(\log n)\) 一条链整体修改 \(O(\log n)\) 一条链整体查询 还可以 \(O(\log n)\) 求最近公共祖先,子树修改,子树查询等,这些复杂 阅读全文
posted @ 2025-07-09 10:16 wuhupai 阅读(125) 评论(0) 推荐(0)
摘要: E: 可以发现两个偶环会组成一个新的偶环,所以我们只要一直连偶环,这个就是始终合法的,所以建一颗dfs树,把所有合法的边扔进去一个一个询问一个一个删即可。 F: manacher板子 阅读全文
posted @ 2025-07-09 10:16 wuhupai 阅读(5) 评论(0) 推荐(0)
摘要: 最唐的一集 C: 发现前面这个2^{a}有点唐,所以我们把这个东西按奇偶分类算 也就是拆成4 * 2^{2a} * b^{2}和4 * 2^{2a} * b{2},然后后面的就可以乘到平方里面,然后除2和除4,然后再sqrt一下了。double最多存252,警钟长鸣! D: 01bfs 翻译错了!怎 阅读全文
posted @ 2025-07-09 10:15 wuhupai 阅读(3) 评论(0) 推荐(0)
摘要: 很久很久以前学过,但是现在都忘了 rotate 具体来说我们的 \(splay\) 要保证中序遍历不变 也很容易理解 这个有图 然后为了左旋右旋分开来写,我们把代码简化一下 我们的旋转是把 \(x\) 旋上去,这个之和 \(x\) 是 \(y\) 的哪个儿子有关 然后之和 \(4\) 个点有关 \( 阅读全文
posted @ 2025-07-09 10:15 wuhupai 阅读(8) 评论(0) 推荐(0)
摘要: E: 先从一个入手,看看它要删哪些点最优。这些点就是和1~k有直接连边的点,然后对于每个求,那么先要判是否联通,这个使用并查集维护siz,否则我们就直接求。我们的答案从上一个继承下来,也就是每加入k,就减掉k和集合里连边,增加k和集合外连边,这个答案是对的。 F: 如果更新后的直径经过新加的边,那么 阅读全文
posted @ 2025-07-09 10:14 wuhupai 阅读(6) 评论(0) 推荐(0)
摘要: A: 容易发现,我们arcrarc这样只会有一个位置没填上,然后就做完了?尼玛,这个东西是个环,还要再考虑一点。就是有1,那么肯定可以,否则如果全都是零,那么之和长度有关,尝试构造一种一点都没有空的东西。ARCR,所以长度为4的都可以,那就是4的倍数都可以,其他为倍数的可不可以呢?完全不知道呜呜,下 阅读全文
posted @ 2025-07-09 10:14 wuhupai 阅读(2) 评论(0) 推荐(0)
摘要: A: 分讨 如果区间没交,直接走 如果有交,那么可以在外面选一个x和s和t都没有交。这个可以开两个数组,一个按左端点排序,一个按右端点排序,然后两个都lower_bound。 还有一种情况,在外面选两个集合,一个和x没有交,一个和y没有交,然后还是lower_bound 有不有可能有其他的情况,没有 阅读全文
posted @ 2025-07-09 10:14 wuhupai 阅读(5) 评论(0) 推荐(0)
摘要: B: 发现我们让有数的先匹配,然后再用-1填其他数,然后我们就变成让最多的数匹配,我们将A从大到小排序,然后将B从小到大排序。我好弱智啊,这个和不是只有n^2种,然后我们可以把和枚举出来,然后看看有多少个,我们a一个桶,b一个桶,然后遍历桶,这个和就是min C: 阅读全文
posted @ 2025-07-09 10:14 wuhupai 阅读(7) 评论(0) 推荐(0)
摘要: E: 每一步都是可以自由选的,那么我们就选期望最好的,然后就直接dp了,和贡献的有关的只有s和当前的集合,然后dp即可 F: 先把题意转化一下。发现每个格子给数的贡献是固定的,所以就变成了和对m取模之后最大。 我们使用双向bfs,然后在把到中间点的路径和都存下来,那么在交汇点的路径条数就是c(9,1 阅读全文
posted @ 2025-07-09 10:14 wuhupai 阅读(4) 评论(0) 推荐(0)
摘要: B: 把最大以往后换一定不劣 用维护下标即可 C: 如果0->0,那么就肯定不操作 如果0->1,那么就操作一次 如果1->0,那么就操作一次 如果1->1,有可能不操作,也有可能在开始变成0,后来再变成1 不确定只有4操作 首先我们肯定先操作3,操作完假设我们已经知道了我们要操作哪些4,我们把这个 阅读全文
posted @ 2025-07-09 10:14 wuhupai 阅读(3) 评论(0) 推荐(0)
摘要: 这个东西真是比较复杂,那就像吃 SAM 一样吃它吧! 我们一条链指向另外一条链的虚边代表的是两个 \(Splay\) 的根节点相连,所以LCT和原树就是一一对应的。 其实是每棵 \(Splay\) 的根节点的父亲节点指向原树中这条链的父亲节点 我们发现 \(Access()\) 其实很容易,只有如下 阅读全文
posted @ 2025-07-09 10:13 wuhupai 阅读(6) 评论(0) 推荐(0)
摘要: 线性代数 学习的笔记 行列式 非常感谢大佬的题解 定义 行列式,是矩阵的一种运算。对于矩阵 \(A\),\(\det A\) 表示方阵 \(A\) 的行列式。所以说,行列式是一个数 行列式存在当且仅当行数列数相等 对于一个 \(n\) 阶行列式 \[A_{n \times n}= \begin{vm 阅读全文
posted @ 2025-07-09 10:12 wuhupai 阅读(13) 评论(0) 推荐(0)
摘要: 没想到abc摆这么多场了,都是文化课的错! C: 容易发现这是一个方程组的形式,这个方程组的特点就是未知数系数为1,然后已经删成了一个对角矩阵。所以我们从后面消上来即可。中间有一个地方忘记掉%10了hhh D: 无聊的搜索 E: 直接列dp方程是dp[i][j]=max(dp[i-1][j-1]+a 阅读全文
posted @ 2025-07-09 10:12 wuhupai 阅读(2) 评论(0) 推荐(0)
摘要: 参照lyc的ppt 先从二维入手.KDtree一种可以高效处理K维空间信息的数据结构。 它有类似二叉搜索树的结构,我们每个节点都代表一个点,它的子树代表空间内的一块 build 建树的思想很好理解,比如我们要对一个K维的东西建kdtree,那么我们为了保证复杂度,我们要做到 轮流(均衡)选择维度,以 阅读全文
posted @ 2025-07-09 10:09 wuhupai 阅读(29) 评论(0) 推荐(0)