- 2024-11-12Solution - Codeforces 1394B Boboniu Walks on Graph
考虑先分析最后的图会长成什么样。因为每个点都只会连出一条有向边,且最后还能走回自己。所以可以知道的是图会有许多个环来组成,且每个环都无交。但是这个判定条件明显不是很优秀,考虑继续转化。考虑到对于一个有向环,每个点的出度和入度都需要为\(1\)。那么出度为\(1\)题目
- 2024-11-112024ccpc女生赛题解
考场上写的A,C,H,L,M下来补一下剩下的E注意\(p[i]<i\)这个性质和重心关系不大,一个简单的构造,手模几个样例就能发现规律。倒着枚举:\(c[i]=0\)的是叶子,不用处理\(c[i]>0\),这个点连到父亲所在连通块的根上即可。并查集维护连通块以及连通块的根,根就是连通块中最小编号的点。#inc
- 2024-11-11后缀排序
后缀排序即对字符串\(S\)的所有后缀根据字典序排序实现算法1:暴力排序直接\(O(n)\)比较,时间复杂度\(O(n^2\logn)\)算法2:倍增优化我们考虑长为\(2^k\)的串的比较,该串可以分为前后均长\(2^{k-1}\)的串,那么只要知道这两个串的排名,就可以对所有\(2^k\)的串进行双关键字排序于是
- 2024-11-09SS241109B. tii(tii)
SS241109B.tii(tii)题意给你一个\(01\)序列,长度为\(n\le5\times10^5\)。给你一个小数\(p\),要你找出一个区间满足区间\(1\)的个数比区间长度和\(p\)最接近,输出区间的左端点,如果有多个区间输出左端点最小的那个。思路设\(s\)是原序列的前缀和数组,翻译一下题面就是求
- 2024-11-08P5479 [BJOI2015] 隐身术 题解
题目传送门前置知识后缀数组简介|字符串哈希|二分解法考虑分别计算出编辑距离恰好等于\(k_{0}\in[0,k]\)的答案。观察在编辑距离的存在下,长度差至多为\(k\)。考虑设\(f_{i,j}\)表示最大的\(x\)使得\(s_{1\simx}\)和\(t_{1\simx+j}\)可以在\(i\)次编
- 2024-11-06能力再次提升! 迅为RK3588/RK3568开发板&核心板新增定制分区镜像
迅为RK3568和RK3588开发板已支持RK传统分区和定制分区两种镜像,定制分区镜像和RK传统分区镜像指的是不同分区结构的镜像,接下来将会对上述两种分区方式进行讲解,并进行对比,分析各自的优点和适用场景。 RK传统分区镜像介绍RK传统分区是瑞芯微标准的分区镜
- 2024-11-01SS241031D. 后缀数组(sa)
SS241031D.后缀数组(sa)题意重题:NOD2308D.飒妃客厮·啊瑞(array)给你一个初始\(a_i=i\)的长度为\(n\)的序列,\(n\le10^9\)。有\(m\)次操作。\(m\le10^5\)。把区间\([l,r]\)移到最前面。翻转区间\([l,r]\)。最终得到序列\(\{a_i'\}\)。求满足长度为\(n\)的
- 2024-10-29P11234 [CSP-S 2024] 擂台游戏
看看了看今年的csps,前三题一眼就秒了,这最后一题想了挺久,还写了快两个小时,要是在正式赛场上估计是要暴毙了,不过好在我已经退役了,希望参赛的选手能有好的发挥题目大意太长了,不写了题解考虑每次加入一个人,然后分析变化的答案经过一些分析,可以发现一些性质1.对于完全没有确定能
- 2024-09-24题解:P5184 [COCI2009-2010#2] PASIJANS
分析考虑贪心,每次尽量选最小的字符。显然是每次选字典序最小的弹栈。我们要比较的是每个栈的字典序,但是朴素比较是\(O(L)\)的,考虑将它优化到\(O(1)\)。这个时候我们可以先离散化然后套路地将所有串拼一起跑SA。记得在每个串之间加分割符。这样每次比较字典序就变成了\(
- 2024-09-22最长公共子串 题解
StatementQ7.1.2.4,时限4s给一个串,定义\(\mathrm{LCS}\)为最长公共子串长度,\(q\)次询问,每次给出\(l,r\),求\[\operatorname{xor}_{i=1}^{r-l+1}\{i+\mathrm{LCS}(S[l,l+i-1],S[l+i-1,r])\}\]\(n\le10^5,q\le30\)Solutiontag:SA,线段树维护分治结构,orzhunction题目就是
- 2024-09-22BZOJ 3277 串 题解
Statement给 \(n\) 个串,问每个串有多少子串是所有 \(n\) 个串中至少 \(k\) 个串的子串。Solution1%%注意到\(\text{LCP}\)在后缀排序后一定是连续的一段,包含一个串的区间是连续的先预处理出对于所有左端点\(l\),最左的\(r\)满足\([l..r]\)中出现了至少\(k\)个
- 2024-09-22BZOJ 4310 跳蚤 题解
Statement把\(S\)分成不超过\(k\)段,使每段的最大子串中的最大串最小。输出这个串。Solution按排名二分这个串,check中从右往左贪心地划分,需要实现\(O(1)\)比较两个子串大小。#include<bits/stdc++.h>usingnamespacestd;#definerep(i,j,k)for(inti=(j);i<
- 2024-09-22【2024.09.15】NOIP2024 赛前集训(2)
【2024.09.15】NOIP2024赛前集训(2)A最大的难点戏剧性地变成了二叉搜索树是什么。先根据已知序列把二叉树建出来,忘了二叉搜索树的移步二叉搜索树&平衡树-OIWiki(oi-wiki.org)根据题意,想到dp计数,\(f[u]\)表示\(u\)子树内的答案,则有转移:\[f[u]=f[lson]\timesf[r
- 2024-09-20P3224 [HNOI2012] 永无乡
题意思路用并查集维护连通性,每个集合维护一个平衡树,每次合并两个集合的时候,将一个平衡树的节点一个一个加入到另一个中。这么做不会超时,每次将小的平衡树拆掉放到大的中,可以证明不会超过\(O(\logn)\)次。总时间复杂度\(O(n\log^2n)\)。代码#include<bits/stdc++.h
- 2024-09-159.15
写不动了,所以来摆一会总结一下吧菜完了啊开学前跟着学校训练,RED实力,然后发现dbyc除了我大抵是没什么人了罢,zty有水平但是天天PUBG,有点可惜啊,颓完了。话说回来第一场模拟赛就爆丸辣,一定是没给大样例的原因!!!一定不是我都原因!!!(bushi然后就还比较顺利,第二次模拟赛D爆他们。
- 2024-09-01模板2
字符串KMPnxt[i]:$b[1:i]$的最长border$b[1:nxt_i]$,且$nxt_i<i$。voidinit(){intp=0;F(i,2,m){while(p&&b[p+1]!=b[i])p=nxt[p];//p+1尝试与i匹配if(b[p+1]==b[i])p++;nxt[i]=p;}}voidkmp(){intp=0;F(i,1,n){
- 2024-09-01Charles激活
简介Charles激活码计算激活Help->RegisterCharles添加RegisteredName和计算出的Licensekey点击RegisterJavaimportjava.nio.ByteBuffer;importjava.nio.ByteOrder;importjava.util.Random;importjava.util.Scanner;/***@program:ZK*@de
- 2024-08-31后缀数组学习笔记
后缀数组挺好玩的,于是来写后缀数组学习笔记了。什么是后缀数组?后缀数组主要关系到2个数组:\(sa\)和\(rk\)。\(sa[i]\)表示将所有后缀按照字典序从小到大排序,排名第\(i\)的后缀的开头为第\(sa[i]\)个字符。\(rk[i]\)表示将所有后缀按照字典序从小到大排序,后缀开
- 2024-08-26HIVE SQL 高频(持续更新)
整理自数据分析常考面试题100题1.连续日期1、为日期排序 row_number()over(partitionbyuse_idorderbydate)asrank2、求日期和排序的差值3、求diff出现最多的次数 max(count(diff))例1:-每个用户一周活跃天数-SELECTuser_id,COUNT(1)ASactiv
- 2024-08-25P9482 [NOI2023] 字符串 题解
题目描述\(T\)组数据,给定长为\(n\)的字符串\(s\),\(q\)次询问,给定\(i,r\),求有多少个\(l\)满足:\(1\lel\ler\)。\(s[i:i+l-1]\)字典序小于\(R(s[i+l:i+2l-1])\)。数据范围\(1\leT\le5,1\len,q\le10^5,1\lei+2r-1\len\)。时间限制\(\texttt{1s}\),
- 2024-08-25后缀数组
后缀排序chars[N];intn,sa[N],rk[N],ork[N<<1];intbuc[N],id[N],pid[N];boolcmp(inta,intb,intw){returnork[a]==ork[b]&&ork[a+w]==ork[b+w];}voidbuild(){ intm=(1<<17),p=0; for(inti=1;i<=n;i++)buc[rk[i]=s[i]]++; for(in
- 2024-08-21字符串学习笔记
扩展kmp令z[i]代表i之后的字符串与原先字符串的最长公共前缀r为目前get到的最大位置,l为对应的左端点很明显的状态转移比如现在枚举到了i这个位置i在[l,r]的范围内,首先S[l,r]==S[1,r-l+1]于是S[i,r]==S[i-l+1,r-l+1]那么显然z[i]=min(z[i-l+1],r-i+1)不能超过长度假设z[
- 2024-08-20leetcode 1082典型题 ,开窗函数
示例零: SELECTseller_id,RANK()OVER(ORDERBYSUM(price)DESC)ASr,SUM(price)FROMSales结果:返回一条数据,没有partition关键字,等于是全表做orderby,基于全表做sum排序,其实这个sql有问题.|seller_id|rk|SUM(price)||---------|--|------
- 2024-08-153_无重复字符的最长子串
3_无重复字符的最长子串【问题描述】给定一个字符串s,请你找出其中不含有重复字符最长子串的长度。示例:输入:s="abcabcbb"输出:3解释:因为无重复字符的最长子串是"abc",所以其长度为3。【算法设计思想】此题为典型的滑动窗口问题,这类问题的主要是处理数组或者字
- 2024-08-14字符串后缀相关
1.后缀数组1.1内容我们将一个字符串\(s\)的所有后缀按照字典序从小到大排序得到数组\(sa\),其中\(sa_i\)表示以\(sa_i\)开始的后缀排名是第\(i\)个。这个数组就叫后缀数组(SuffixArray,SA)。考虑到长度各不相同,所以显然是个排列,设数组\(rk\)是这个数组的逆排列。