随笔分类 -  分块

摘要:题链 Description Description 解一个线性规划(大雾) Sol 单纯形我们发现我们可以暴力枚举转的圈数,而这个东西可以数论分块优化。 Code #include <bits/stdc++.h> #define LL long long using namespace std; 阅读全文
posted @ 2018-10-17 21:31 泪寒之雪 阅读(157) 评论(0) 推荐(0) 编辑
摘要:题目描述 给出两个序列{a[i]}、{b[i]},一个排列 p 的权值定义为∑a[i]*b[p[i]]。 一开始有一个排列 P 作为限制,表示任意与 P 有某一位相同的排列均不合法。 初始时 P[i]=i,有 q 次操作,每次交换 P 中的两个元素。 在每次操作后,求出此时所有合法排列的权值中的最大 阅读全文
posted @ 2018-08-16 20:19 泪寒之雪 阅读(179) 评论(0) 推荐(0) 编辑
摘要:SOL: 我们可以考虑SAM来跑这玩意。 我们发现 q*k=C是一个常数。 那么我们可以分段处理:当k小于一个值的时候,我们可以在sam上暴力求出当前串的每一个子串的出现次数。 复杂度O(kC+simga q) 当k很大时,我们在SAM的fail树上倍增,我们暴力记下每一个前缀,对于每个前缀通过fa 阅读全文
posted @ 2018-04-12 21:26 泪寒之雪 阅读(420) 评论(0) 推荐(0) 编辑
摘要:原题链接 题目大意: 给你一个序列,要求维护两种操作: 1,l,r,x: 在l到r这个区间将所有 值大于X的数减X 2, l,r,x 在l到r这个区间统计值等于X的数的个数。 N(序列长度<=10^5),max(a)(序列中的最大值<=10^5). 一道神题。 我们首先应该想到用数据结构优化,但是标 阅读全文
posted @ 2018-01-21 10:17 泪寒之雪 阅读(666) 评论(0) 推荐(0) 编辑
摘要:题目描述 给定一棵n个点的树,树上每条边的长度都为1,第i个点的权值为a[i]。 Byteasar想要走遍这整棵树,他会按照某个1到n的全排列b走n-1次,第i次他会从b[i]点走到b[i+1]点,并且这一次的步伐大小为c[i]。 对于一次行走,假设起点为x,终点为y,步伐为k,那么Byteasar 阅读全文
posted @ 2017-12-27 21:31 泪寒之雪 阅读(422) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示