• 2024-11-13Educational Codeforces Round 157 (Rated for Div. 2) - VP 记录
    Preface啊啊啊为什么我老是被简单题卡啊!A.TreasureChestA题题面这么长吓我一跳。分类讨论,钥匙在前面可以拿了钥匙直接到箱子那里;箱子在前面就尽量把箱子往钥匙搬,让折回的距离尽量小。点击查看代码#include<cstdio>#include<algorithm>usingnamespacestd;intmain
  • 2024-11-10AC 自动机
    OI-wikiLinkandbilibiliLinkAC自动机,主要用于解决多模式串(即需要求出出现次数等的串)匹配的问题,基于字典树。大致将模式串建到字典树上,对每个字典树上的节点求出失配指针,根据失配指针建立失配树,用失配树来维护模式串出现次数。具体构建建立字典树略。失配fail指针
  • 2024-11-02线段树也能是 Trie 树 题解
    题意简述给定一个长为\(n=2^k\)的序列\(\{a_0,\ldots,a_{n-1}\}\),你需要使用数据结构维护它,支持\(m\)次以下操作:单点加:\(a_x\getsa_x+y\);区间查:\(\sum\limits_{i=l}^ra_i\);全局下标与:\(a'_{i\operatorname{and}x}\getsa_{i}\),即把\(a_i\)累加到
  • 2024-11-01trie树
    顾名思义,trie树是由字典与树的结合体,是一种方便快捷地存储字符串等字符集较小的串集的数据结构(不确定算不算数据结构)而其结构是朴素的。trie树的节点本身并没有特殊的含义,其信息更多体现在边上。如下图这是一颗典型的trie树。例如我们要表示aba这个字符串,我们就从1->2->6->11
  • 2024-11-01洛谷题单指南-字符串-P3369 【模板】普通平衡树
    原题链接:https://www.luogu.com.cn/problem/P3369题意解读:平衡树的基本操作,模版题。解题思路:1、二叉搜索树-BST二叉搜索树满足这样的性质:每一个节点的权值大于它的左儿子,小于它的右儿子。对BST进行中序遍历,将得到一个从小到大的有序序列,因此BST是为了维护一个有序序列的动态
  • 2024-10-30字典树
    字典树(Trie)支持\(O(|s|)\)插入/查询一个字符串。空间复杂度为\(O(|s|_{\max}|\Sigma|)\)。01Trie即\(\Sigma=\{0,1\}\)的字典树,类似二进制,插入/查询一个数复杂度为\(O(\logx)\)。空间复杂度貌似是\(O(\logx)\)的?这种数据结构可以用来维护异或等基本操作,由于不需要
  • 2024-10-29一些题目
    一些最近刷到的好题,还有一些没见过的处理方式。原题:FunctionQuery定义\(f(x)=(x\oplusa)-b\),其中\(a,b\)是给定的参数。给定\(n\)个变量,\(x_1,x_2,x_3,\dots,x_n\),给出\(q\)组询问,对于每组询问,给定\(a,b\),请你输出一个\(i\),满足\(i\in[1,n)\),且有\(f(x_i)\times
  • 2024-10-24处理异或运算下的不等式
    真的恶心,妈的放道D1恶心人,D1跟D2正解毛关系都没有,傻逼比赛题号CF1720D2Xor-Subsequence(hardversion)简单转化一下题意就是求这样的一个dp数组:\(f[i]=max_{a[i]⊕j>a[j]⊕i}(f[j]+1)\)以前看见异或不等完全不敢在不等号两边操作,然后这题就是要在不等号上操作:先考
  • 2024-10-23百度大模型算法工程师二面:我的亲身经历分享!
    百度大模型算法工程师面试题应聘岗位:百度大模型算法工程师面试轮数:第二轮整体面试感觉:偏简单面试过程回顾1.自我介绍在自我介绍环节,我清晰地阐述了个人基本信息、教育背景、工作经历和技能特长,展示了自信和沟通能力。2.Leetcode题具体题意记不清了,但是类似【2
  • 2024-10-21洛谷题单指南-字符串-P4735 最大异或和
    原题链接:https://www.luogu.com.cn/problem/P4735题意解读:已知长度为n的数组a[],要在l~r范围找到一个p,使得a[p]^a[p+1]^...^a[n]^x最大,求这个最大的异或值。解题思路:1、利用前缀和将问题转化设s[]是a[]的前缀异或数组,要计算a中一段范围l~r的异或,可以借助于s由于s[r]=a[0]^a[
  • 2024-10-13CSP 模拟 46
    A二分答案,每个数去找范围内最左边的。B相同的数不会交换,所以设\(f_{i,j,k,u}\)为到\(i\),有了\(j\)个0,\(k\)个1,当前位置是\(u\)的最小代价,转移是暴力的,如果一个数要去前面,那么最优的方案一定不会把他往后面换,所以两次移动只有一次贡献,最终的答案要除以\(2\)。C首先
  • 2024-10-12【JavaScript】LeetCode:61-65
    文章目录61课程表62实现Trie(前缀树)63全排列64子集65电话号码的字母组合61课程表Map+BFS拓扑排序:将有向无环图转为线性顺序。遍历prerequisites:1.数组记录每个节点的入度,2.哈希表记录依赖关系。n=6,prerequisites=[[3,0],[3,1],[4,1],[4,2],[5,3],[5,4]]。0、1
  • 2024-10-08[AGC064C] Erase and Divide Game 题解
    DescriptionTakahashi和Aoki玩游戏。先在黑板上写若干个数,由\(N\)个互不相交的区间\([l_i,r_i]\)组成。两人轮流操作,每次操作先删去所有的奇数/偶数,再把剩下的数除以\(2\)(向下取整),无法操作的人输。Takahashi先手,假设两人都采用最优策略,问谁能获胜。\(1\leqN\leq10^
  • 2024-10-06Trie
    835.Trie字符串统计模板题:维护一个字符串集合,支持两种操作:Ix向集合中插入一个字符串x;Qx询问一个字符串在集合中出现了多少次。共有N个操作,所有输入的字符串总长度不超过10^5,字符串仅包含小写英文字母。输入格式第一行包含整数N,表示操作数。接下来N行,每行包
  • 2024-09-30P6105 [Ynoi2010] y-fast trie
    这可能也是一个关于匹配的经典trick。题意给定常数\(C\),你需要维护一个集合\(S\),支持以下操作:1x,加入数\(x\),保证\(x\)之前不存在。2x,删除数\(x\),保证\(x\)之前存在。每次操作后你需要回答$$\max_{i,j\inS,i\not=j}(i+j)\bmodC$$\(Q\le5\times10^5\),强制在
  • 2024-09-28acam 小记
    acam作为多模匹配算法,很多东西与kmp相同,另外增添了fail树上操作的关键性质。朴素acam就是trie树,fail指针就是在当前node找一个后缀,使得在其他串存在一个前缀是这个后缀(类似kmp)。trie图,就是简单优化了这个"树上乱跳"的过程,补全每个节点的儿子,类似于路径压缩。其实
  • 2024-09-23字典Trie树
    题目描述维护一个字符串集合,支持两种操作:I x 向集合中插入一个字符串 x;Q x 询问一个字符串在集合中出现了多少次。共有 N (1≤N≤2×10^4) 个操作,输入的字符串总长度不超过 10^5,字符串仅包含小写英文字母。输入格式第一行包含整数 N,表示操作数。接下来 N 行,
  • 2024-09-22BZOJ 4545 DQS 的 trie 题解
    Statement维护一棵树,边权\(\in\{\texttta,\textttb,\textttc\}\),根为\(1\),定义这棵树的子串为从\(1\)走到所有点构成的字符串的所有后缀,需要支持以下操作:问当前树的本质不同子串数给一个点添加一棵子树问一个串在当前树中作为子串的出现次数Solution直接广义SAM+
  • 2024-09-17LeetCode415周赛T2 +T3
    最高乘法得分动态规划解决从数组b中选择下标的问题题目描述给你一个大小为4的整数数组a和一个大小至少为4的整数数组b。你需要从数组b中选择四个下标i0,i1,i2,和i3,并且要求满足i0<i1<i2<i3。你的得分将是:a[0]*b[i0]+a[1]*b[i1]+a[2]*b
  • 2024-09-14208. 实现 Trie (前缀树)||Trie字典树模板
    题目:https://leetcode.cn/problems/implement-trie-prefix-tree/description/以前的板子写得太丑陋了,重新写一份><因为是leetcode上的题目,所以是核心代码模式。字典树(Trie)原理:(因为我语言表达能力不行,所以以下内容来源于小美AI机器人><)字典树(Trie)是一种用于高效存储和检索字
  • 2024-09-14P4551 最长异或路径(树上前缀异或01-trie)
    #include<bits/stdc++.h>usingnamespacestd;#definexfirst#defineysecondtypedefpair<int,int>PII;typedeflonglongll;typedefunsignedlonglongull;typedefunsignedintuint;typedefvector<string>VS;typedefvector<int>
  • 2024-09-14P10470 前缀统计(trie树)
    #include<bits/stdc++.h>usingnamespacestd;#definexfirst#defineysecondtypedefpair<int,int>PII;typedeflonglongll;typedefunsignedlonglongull;typedefunsignedintuint;typedefvector<string>VS;typedefvector<int>
  • 2024-09-12[模板题] - 208. 实现 Trie (前缀树)
    题目链接208.实现Trie(前缀树)思路模板题-Trie树题解链接官方题解关键点无时间复杂度\(O(\sum_{i}\#\text{word}_{i})\)空间复杂度\(O(\sum_{i}\#\text{word}_{i})\)代码实现:classTrie:def__init__(self):self.children=[N
  • 2024-09-11可持久化数据结构
    可持久化线段树看这个。可持久化字典树最大异或和考虑设\(s\)为\(a\)的前缀异或和数组,我们最终的答案就是找一个\(p\in[l-1,r-1]\),然后求出\(s_n\operatorname{xor}x\operatorname{xor}s_p\)。首先,对于最大异或数对问题,可以使用\(01\)\(trie\)解决,这里不再赘述。
  • 2024-09-08BZOJ 4502 串 题解
    妙妙数数题key:数数题通常是,对于特定形式的计数,就盯着这个模式观察,看出一些充要条件、计数形式的转化,然后想办法维护。优化的本质就是把难算的变成好算的,把不好一起统计的(只能一个个数的)以某种角度、用某些数据结构,一起统计(多个多个数)。我觉得难点通常在于“盯出一些充要条件”,