Loading

摘要: 题意 https://loj.ac/problem/2878 思路 真的神仙题,想到就很好写,想不到就写不出来。 肯定只能一个一个邮戳按顺序分析。首先,将取一枚邮戳的路径分为四种: 上行 $\rightarrow$ 邮戳台 $\rightarrow$ 上行 简称路径 $(U,V)$ 上行 $\rig 阅读全文
posted @ 2019-01-11 19:05 Paulliant 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 前言 ​ \(\text{FFT}\)(快速傅里叶变换)是 \(O(n\log n)\) 解决多项式乘法的一个算法,\(\text{NTT}\)(快速数论变换)则是在模域下的,而 \(\text{MTT}\)(毛神仙对$\text{FFT}$的精度优化算法)可以针对任意模数。 正文 FFT-快速傅里 阅读全文
posted @ 2019-01-11 10:59 Paulliant 阅读(3407) 评论(5) 推荐(1) 编辑
摘要: 题意 https://loj.ac/problem/2135 思路 首先要明确一点,答案分布是有单调性的。什么意思呢?假设我们的答案在 $u$ 节点,$(u,v)$ 之间有一条边且 $u$ 离答案所在的点更近,那么 $u$ 节点作为答案一定不比在 $v$ 节点作答案劣。从链的角度分析在拓展到树上会比 阅读全文
posted @ 2019-01-10 13:47 Paulliant 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 题意 https://loj.ac/problem/2444 思路 ​多串匹配,考虑 $\text{AC}$ 自动机。模拟打字的过程,先建出一棵 $\text{Trie}$ 树,把它变成自动机。对于每一个询问 $(x,y)$ ,相当于求 $y$ 在 $\text{Trie}$ 上的父节点中,有多少个 阅读全文
posted @ 2019-01-08 14:18 Paulliant 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 题意 给定 $n$ 个单词,$q$ 个询问,每个询问包含两个串 $s_1,s_2$,询问有多少个单词以 $s_1$ 为前缀, $s_2$ 为后缀,前后缀不能重叠。 $1 \leq n,q \leq 10^5$ 思路 字符串题有一个小技巧,拼接字符串,中间加上连接符。如这道题,可以将查询变成 $s_2 阅读全文
posted @ 2019-01-06 16:42 Paulliant 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 题意 给定 $n$ 个字符串,$m$ 个询问,每次询问 $a$ 字符串的后缀和 $b$ 字符串的前缀最多能匹配多长。 $1\leq n,m \leq 10^5$ 思路 多串匹配,考虑 $\text{AC}$自动机,对 $n$ 个串建自动机,观察这个结构,不难发现 $Trie$ 树的结构和前缀有关,$ 阅读全文
posted @ 2019-01-06 16:20 Paulliant 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 题意 https://www.lydsy.com/JudgeOnline/problem.php?id=3172 思路 $\text{AC}$自动机模板题,稍微点一下 $\text{AC}$自动机。 $\text{AC}$自动机说白了就是在 $\text{Trie}$ 树上跑 $\text{KMP} 阅读全文
posted @ 2019-01-01 17:53 Paulliant 阅读(238) 评论(1) 推荐(0) 编辑
摘要: 题意 给出字符串的长度 $n$ ,以及该字符串是由哪些小写字母组成,现给出一个坏串 $S$ ,求存在多少种不同的字符串,使得其子串不含坏串。 $1 \leq n \leq 10^9$ $1 \leq |S| \leq 50$ 思路 矩阵快速幂优化 $\text{dp}$ 是真的常见,在同层状态数不多 阅读全文
posted @ 2019-01-01 16:03 Paulliant 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 题意 给定一个字符串 $s$ ,一个字符串 $t$ ,其中 $s$ 包含小写字母和 "?" ,$t$ 只包含小写字母,现在把 $s$ 中的问号替换成任意的小写字母,求 $t$ 最多在 $s$ 中出现多少次,$t$ 可以互相覆盖。 $1 \leq |s| \leq 10^5$ $1 \leq |t| 阅读全文
posted @ 2019-01-01 15:43 Paulliant 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 题意 给定一个字符串 $S$ ,一次操作可以在这个字符串的右边增加任意一个字符。求操作之后的最短字符串,满足操作结束后的字符串是回文。 $1 \leq |S| \leq 10^6$ 思路 $\text{KMP}$ 的 $fail$ 数组是整个算法最重要的东西,能拓展出很多东西。 对于一个模式串(pa 阅读全文
posted @ 2019-01-01 14:49 Paulliant 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 题意 https://loj.ac/problem/2142 思路 一个数如果要作为指数,那么它不能直接对模数取模,这是常识; 诸如 $c^{c^{c^{c..}}}$ 的函数递增飞快,不是高精度可以描述的,这也是常识。 所以,此题要用到很多数论知识。 欧拉函数 定义 $\varphi(n)$ 为 阅读全文
posted @ 2018-12-29 17:47 Paulliant 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 题意 给定一个长度为 $n$ 的 $01$ 串,完成 $m$ 种操作——操作分两种翻转 $[l,r]$ 区间中的元素、求区间 $[l,r]$ 有多少个不同的子序列。 $1 \leq n,m \leq 10^5$ 思路 看到这种题目,应该条件反射的去想一下线段树。 但首先还是从一个询问开始,对于一个长 阅读全文
posted @ 2018-12-28 10:35 Paulliant 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 题意 在一个 $n$ 个节点 $m$ 条边的有向图上随机游走,有 $Q$ 个询问,每次给定一个起点 $u$ 和步数 $K$ ,每次回答最后停在每个节点的概率。 $1 \leq n \leq 50$ $1 \leq m \leq 1000$ $1 \leq Q \leq 20$ $1 \leq K \ 阅读全文
posted @ 2018-12-28 09:40 Paulliant 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题意 求解递推式 $f(n)=a_1 f(n 1)+a_2 f(n 2)+....+a_d f(n d)$ 的第 $n$ 项模以 $m$。 $1 \leq n \leq 2^{31} 1$ $1 \leq m \leq 46340$ $1 \leq d \leq 15$ 思路 矩阵乘法最经典的运用之 阅读全文
posted @ 2018-12-28 09:25 Paulliant 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 题意 https://hihocoder.com/problemset/problem/1195 思路 高斯消元是解决高元方程的一种算法,复杂度 $O(n^3)$ 。 过程大致是: 1. 构造一个未知数的倒三角,并维护多解标记; 2. 寻找是否出现没有未知数但常数非零的式子,有则返回无解; 3. 多 阅读全文
posted @ 2018-12-28 08:52 Paulliant 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 题意 给定一棵 $n$ 个节点的树,每个节点有点权。完成 $q$ 个操作——操作分两种:修改点 $x$ 的点权、查询与 $x$ 距离小于等于 $d$ 的权值总和。 $1 \leq n,q \leq 10^5$ 思路 从最简单的情况分析——只有一次查询。当然一遍 $O(n)$ 的 $\text{dfs 阅读全文
posted @ 2018-12-28 08:24 Paulliant 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 题意 一个 $1$ 到 $n$ 的全排列,$m$ 种操作,每次将一段区间 $[l,r]$ 按升序或降序排列,求 $m$ 次操作后的第 $k$ 位。 $1 \leq n \leq 10^5$ 思路 两个 $\log$ 的做法展现了二分答案的强大功能。首先二分枚举第 $k$ 位的值,然后将小于等于它的数 阅读全文
posted @ 2018-12-27 15:28 Paulliant 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 题意 https://www.lydsy.com/JudgeOnline/problem.php?id=4771 思路 和 HDU 3333 其实有点像,不过是把序列的问题放在了树上,多维护一个深度即可。每个点用一个线段树维护子树内每个深度有多少种颜色(同样只保留每个颜色最浅位置),用线段树合并进行 阅读全文
posted @ 2018-12-25 17:13 Paulliant 阅读(541) 评论(1) 推荐(0) 编辑
摘要: 题意 https://loj.ac/problem/534 思路 又是复杂度错误的一题,$O(n^2\log n)$ 能过 $15000$ 。 虽然看起来强制在线,其实是一道假的在线题。首先按时间建立线段树,先序遍历整棵树,到叶子时进行更新并回答询问。 更新时将物品当做标记,打到线段树上 ,遍历到一 阅读全文
posted @ 2018-12-25 16:30 Paulliant 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 题意 一棵 $n$ 个节点的树,求两点间距离不超过 $k$ 的点对对数。 思路 点分治模板题,点分治一般用来解决树上的路径问题,核心在于找出重心,算经过重心的合法路径,然后以重心把树劈成若干个小树分别计算,每次能把树至少砍一半,至多递归到 $\log n $ 层,而每层总结点数是 $n$ ,所以复杂 阅读全文
posted @ 2018-12-21 22:27 Paulliant 阅读(161) 评论(0) 推荐(0) 编辑