上一页 1 2 3 4 5 6 ··· 55 下一页
摘要: 给出一个数组$a$,若子串$a[l,r]\(满足\)[1,r-l+1]$各出现一次,则称其为这个数组的一个子排列。 求这个数组的子排列个数。 做法: 观察到一个子区间$[l,r]$是一个排列,等价于: $[l,r]$没有重复的数字。 $[l,r]$中的最大值为$r-l+1$。 用单调栈处理出每个数作 阅读全文
posted @ 2021-11-08 16:23 zlc0405 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 给出节点数为$n$,边数为$m$的图。 保证每个点对都是互连的。 定义彩虹路:这条路经过$k$个节点,对于$x(x%2=0)$的节点,左右两条边颜色相同。 现在有$q$次操作。 第一种操作是添加一条边。 第二种操作是回答是否能经过彩虹边从$a$节点到达$b$节点。 做法: 能相互到达的点用并查集连起 阅读全文
posted @ 2021-11-08 15:22 zlc0405 阅读(46) 评论(0) 推荐(0) 编辑
摘要: P6793 [SNOI2020]字符串 给出两个长度为$n$的字符串$a,b$,取出他们所有长为$k$的子串(各有$n-k+1$个),这些子串分别组成集合$A,B$。 现在要修改$A$中的串,使得$A$和$B$完全相同。 可以任意次选择修改$A$中的一个串的一段后缀。花费为这段后缀的长度。 总花费为 阅读全文
posted @ 2021-11-06 10:48 zlc0405 阅读(74) 评论(0) 推荐(0) 编辑
摘要: P4248 [AHOI2013]差异 给出一个长度为$n$的字符串$S$,令$T_i$表示它从第$i$个字符开始的后缀,求: \(\sum_{1\leq i<j\leq n}len(T_i)+len(T_j)-2\times lcp(T_i,T_j)\) 做法: 对反串建后缀树。 后缀树的边权记为$ 阅读全文
posted @ 2021-11-05 21:52 zlc0405 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 给你一个串$S$,以及一个字符串数组$T_{1,2,...m}$,$q$次询问,每次问$S$的子串$S[p_l,...p_r]$在$T_{l...r}$中的哪个串的出现次数最多,并输出出现次数。 做法: 对串$S$和数组$T$建立后缀自动机。 在后缀自动机上找到$S[l,r]$这个子串对应的节点u, 阅读全文
posted @ 2021-11-04 22:52 zlc0405 阅读(53) 评论(0) 推荐(0) 编辑
摘要: [HEOI2016/TJOI2016]字符串 给出一个长度为$n$的字符串$s$,和$m$个问题。 每个问题均有$a,b,c,d$四个参数,问你子串$s[a,b]$的所有子串和$s[c,d]$的最长公共前缀的长度的最大值是多少? 做法: 二分一个答案$mid$。 现在我们要判断$s[c,c+mid- 阅读全文
posted @ 2021-11-04 16:08 zlc0405 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 给出一个n,和两个长度为n的数组a和b。 最多交换一次b中的两个位置 最小化$\sum_{i=1}^n|a_i-b_i|$ 做法: 对于原数组,记$x_i=|a_i-b_i|$ 考虑交换$i,j$的$b$值,那么差值为$|a_i-b_j|+|b_i-a_j|-x_i-x_j$ 这个柿子,等价于对平面 阅读全文
posted @ 2021-10-28 22:10 zlc0405 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 给出一颗带点权的树。 支持两种操作: 1)单点修改点权。 2)输入$u,v$,输出$\sum_{i=1}^n\sum_{j=1}^nf(i,j)$ 如果$i,j$这条路径和$u,v$有交点,\(f(i,j)=w_iw_j\)。 对$i,j$的乘积 做法: 答案相当于权值之和的平方,减去把$(u,v) 阅读全文
posted @ 2021-10-23 16:41 zlc0405 阅读(57) 评论(0) 推荐(0) 编辑
摘要: HDU5390 给出一颗有根树。有点权。 两种操作: 1)0 u v,把点u的点权变成v 2)1 u,询问最大的$v_u \oplus v_t$,要满足$t$是$u$到根节点路径上的一个点。 做法: 先考虑没有修改的情况,用可持久化Trie可以很方便的做掉。 现在考虑带有修改的情况: 考虑在dfs序 阅读全文
posted @ 2021-10-23 01:42 zlc0405 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 维护一个队列,每个人有抵达时间和操作时间。 要求维护以下三种操作: 1)t时刻来一个人,它操作需要d秒。 2)t时刻要来的那个人不来了。 3)如果t时刻去排队,需要等多久才能轮到你。 做法: 巧妙的线段树,以时间为下标建树,每个节点维护两个信息: 1)这个区间内所有来的人的操作时间之和c。 2)完成 阅读全文
posted @ 2021-10-22 22:08 zlc0405 阅读(27) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 55 下一页