上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 190 下一页
摘要: 题意 "题目链接" Sol 首先猜一个结论:对于每次询问,枚举一个起点然后不断等到某个点出现时才走到下一个点一定是最优的。 证明不会,考场上拍了3w组没错应该就是对的吧。。。 首先把数组倍长一下方便枚举起点,然后就是一个单调队列的模型了。整理一下我们需要求的东西就是这个 $$n 1 + \min_{ 阅读全文
posted @ 2019-02-22 11:33 自为风月马前卒 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 题意 "题目链接" 有$n$个位置,每次你需要以$1 \sim n 1$的一个排列的顺序去染每一个颜色,第$i$个数可以把$i$和$i+1$位置染成黑色。一个排列的价值为最早把所有位置都染成黑色的次数。问所有排列的分数之和 Sol 神仙题Orz 不难想到我们可以枚举染色的次数$i \in [\lce 阅读全文
posted @ 2019-02-22 08:53 自为风月马前卒 阅读(433) 评论(0) 推荐(1) 编辑
摘要: 题意 "题目链接" Sol 神仙题Orz 首先不难看出如果我们从$a_i$向$i$连一条边,我们会得到以$0$为根的树(因为每个点一定都有一个入度,出现环说明无解),同时在进行排列的时候需要保证父亲节点一定在孩子节点之前出现 接下来考虑直接贪心。对于某些权值很小的点,我们需要让其尽早出现,同时又要满 阅读全文
posted @ 2019-02-21 21:33 自为风月马前卒 阅读(461) 评论(0) 推荐(1) 编辑
摘要: 题意 "题目链接" Sol 神仙题Orz Orz zbq爆搜70。。 考虑"与"和"或"的性质 $0 \& 0 = 0, 1 \& 0 = 0$ $0 \mid 1 = 1, 1 \mid 1 = 1$ 也就是说某一个数$\& 0$之后不管之前是什么,现在的值变为$0$ 某一个数$\mid 1$之后 阅读全文
posted @ 2019-02-21 21:04 自为风月马前卒 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 题意 "题目链接" Sol 神仙题Orz 后缀自动机 + 线段树合并。。。 首先可以转化一下模型(想不到qwq):问题可以转化为统计$B$中每个前缀在$A$中出现的次数。(画一画就出来了) 然后直接对$A$串建SAM,线段树合并维护一下siz就行了 cpp include using namespa 阅读全文
posted @ 2019-02-20 20:59 自为风月马前卒 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 题意 "题目链接" Sol 神仙题Orz 后缀自动机 + 线段树合并 首先对所有的$t_i$建个广义后缀自动机,这样可以得到所有子串信息。 考虑把询问离线,然后把$S$拿到自动机上跑,同时维护一下最长能匹配的位置,对于每个以$i$位置为右端点的询问我们需要找到$len$最小的状态满足$len[sta 阅读全文
posted @ 2019-02-20 16:20 自为风月马前卒 阅读(544) 评论(0) 推荐(1) 编辑
摘要: 题意 "题目链接" Sol 广义后缀自动机板子题。。和BZOJ串那个题很像 首先建出询问串的SAM,然后统计一下每个节点被多少个串包含 最后直接拿询问串上去跑就行了 cpp include using namespace std; const int MAXN = 1e6 + 10; int N, 阅读全文
posted @ 2019-02-20 11:43 自为风月马前卒 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 题意 "题目链接" Sol 广义SAM的板子题。 首先叶子节点不超过20,那么可以直接对每个叶子节点为根的子树插入到广义SAM中。 因为所有合法的答案一定是某个叶子节点为根的树上的一条链,因此这样可以统计出所有合法的答案 然后就是经典的本质不同子串问题了,$ans = \sum len[i] len 阅读全文
posted @ 2019-02-20 11:13 自为风月马前卒 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 题意 "题目链接" Sol 线段树合并板子题,目前我看到两种写法,分别是这样的。 前一种每次需要新建一个节点,空间是$O(4nlogn)$ 后者不需要新建,空间是$O(nlogn)$(面向数据算空间你懂得),但是需要离线,因为共用节点的缘故,之后的修改可能会修改到不需要修改的节点(好绕啊); 这题就 阅读全文
posted @ 2019-02-18 10:55 自为风月马前卒 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 题意 "题目链接" Sol 线段树合并板子题 cpp include using namespace std; const int MAXN = 400000, SS = MAXN 21; inline int read() { char c = getchar(); int x = 0, f = 阅读全文
posted @ 2019-02-18 08:32 自为风月马前卒 阅读(391) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 190 下一页

Contact with me