上一页 1 2 3 4 5 6 7 ··· 16 下一页
摘要: 题意 给定一个连通图,上面有若干标记点,求这些标记点之间的最短路。保证没有重边和自环。 思路 二进制分组一下,按照二进制位将标记点分开。每一组跑一次多源最短路(伪)(其实就是将多个点扔进优先队列跑dijk)。 (数据有点水,分成三组都能过) 代码 阅读全文
posted @ 2019-11-07 16:31 Ilverene 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 题意 又是一位被$oi$耽误了的文学家,甚至有一种做$lxl$题的感觉。 给定一棵树,向上加若干新边。现在可以删除一条树边一条新边,求将这棵树截断的方案数。 思路 对于一条边,如果没有新边覆盖他,显然删除这条边再删除任意一条新边均可。 如果有一条新边覆盖,那么删除这条树边再删除这条新边,只有一种方法 阅读全文
posted @ 2019-11-07 16:17 Ilverene 阅读(166) 评论(0) 推荐(0) 编辑
摘要: [TOC] 写在前面 $kmp$模式匹配算法是一种能够在线性时间内判断字符串$A$是否是字符串$B$的子串的算法,并且优于哈希地,能够求出每个子串出现的位置。 我们一般称字符串$A$为模式串,字符串$B$为文本串。 next数组 $kmp$算法的核心步骤即为对模式串进行自我匹配求出$next$数组。 阅读全文
posted @ 2019-11-03 20:13 Ilverene 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 题意 对于整数序列 $(a_1,a_2,\cdots,a_n)$和 $1\sim n$的排列$(p_1,p_2,\cdots,p_n)$,称 $(a_1,a_2,\cdots,a_n)$符合 $(p_1,p_2,\cdots,p_n)$,当且仅当: $\{a\}$中任意两个数字互不相同; 将 $(a 阅读全文
posted @ 2019-11-03 11:12 Ilverene 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题意 给出一个长度为n的序列a,首先求出其所有区间的中位数,将这些中位数构成的集合记为S,求S中所有数的中位数。 这里定义的中位数指: 对于m个数,将其从小到大排序后,第(m/2+1)个数即为中位数,例如(10,30,20)的中位数为20,(10,30,20,40)的中位数为30,(10,10,10 阅读全文
posted @ 2019-11-02 23:09 Ilverene 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 题意 思路 首先有一点是肯定的,掉落的形状会像一个三角形一样。(因为总体的排列像砖墙一样,所以掉落范围只能缩小不能扩大) 于是我们可以维护初始的所有区间,然后在向上转移的过程中合并区间、统计答案。 代码 阅读全文
posted @ 2019-11-02 12:19 Ilverene 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 题意 给定若干个多项式,将其在正整数域上的所有值放入一个允许重复的序列中,然后进行sort操作。求该序列的第n项。 思路 比较显然的思路。 由于k的值比较小,所以每次求值的时间可以近似于忽略。那么维护一个小根堆,装着每一个多项式当前的值,然后模拟即可。 时间复杂度为$O(mk+nk)$。 代码 cp 阅读全文
posted @ 2019-11-02 11:48 Ilverene 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 题意 给定一个字符串,求定长的不包含这个字符串的字符串数量。 思路 设子状态$dp[i][j]$表示求的字符串匹配到i,给定的字符串最多匹配到j的答案数量,那么所求即为$\sum dp[n][i]$,转移用kmp维护。 但是这样速度还是不过,观察之后考虑矩阵快速幂。 代码 cpp include u 阅读全文
posted @ 2019-10-27 21:06 Ilverene 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 题意 求不相交前后缀匹配数量。 思路 注意本题求的是数量,不是长度。 代码 阅读全文
posted @ 2019-10-27 16:38 Ilverene 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题意 给你一个字符串,它是由某个字符串不断自我连接形成的。 但是这个字符串是不确定的,现在只想知道它的最短长度是多少. 思路 结论:$ans=n next[n]$ 证明:(偷了LYYY的图) 由于上下对应段相同,所以红色和1相等。由于前缀和后缀相等,所以1和2相等。其余同理 所以可以得出,红色即为循 阅读全文
posted @ 2019-10-27 16:20 Ilverene 阅读(159) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 16 下一页