[题解]Cut the Sequence(贪心区间覆盖) POJ - 3017 题意: 给定一大堆线段,问用这些线段覆盖一个连续区间1-x的最小使用线段的数量. 题解 考虑一个这样的贪心: 先按照左端点排序,若左端点一样则谁长谁在前.现在判无解就方便了,记录一下前缀max即可.然后现在要最小化选择. 记录一个最右端点\(R\),一个暴力的办法是暴力循环判断所有线段是否满足条件,这样显然超时,你决定优化一下常数,所以你记录一下从哪个线段开始才\(l_i \ge R\).你以为你是常数优化,其实你复…
前言 这场比赛,在最后 \(5\) 分钟,我想到了这道题的 \(Idea\),但是,没有打完,比赛就结束了. 正文 题目意思 这道题目的意思就是说,一棵树上每次给 \(x\) 和 \(y\) 节点连 \(1\) 条边,问 \(a\) 到 \(b\) 之间有没有长度为 \(k\) 的边. 分析 一开始,我看到这道题就往基环树这里去想,可实际上,这道题的方法却是和加工零件这道题是有异曲同工之处,作者那道题里面也写了篇题解,不会的同学可以去看一看. 这道题难处理的地方就是加 \(1\) 条边这个地方很…
原题传送门 817,我突然想到了某8位质数 这题珂以说是珂朵莉树的模板 三个操作都肥肠简单,前两个区间赋值,第三个区间0变1,1变0 每次输出从头开始扫描就行(我忘了珂朵莉树的性质,竟然还动态维护最左边0的位置) #include <bits/stdc++.h> #define getchar nc #define ll long long #define IT set<node>::iterator using namespace std; inline char nc(){ s…
首先,子树上的查询问题可以通过$DFS$序转为序列问题 再一看,没有修改,可以离线,这不就是莫队吗? 我们用$sum_i$表示出现次数$\geq i$的个数 用$val_i$表示第$i$种颜色的出现次数 那么每次修改时只要$O(1)$修改$sum$和$val$即可 详见代码 #include <bits/stdc++.h> ; struct node { int val, dfn, r, id; }; struct query { int l, r; int pos, id, k; }; st…
\[ \text{Preface} \] 算是一道思维难度稍易,代码难度稍难的题吧. \[ \text{Description} \] 给出一张 \(n\) 个点,\(m\) 条边的图,点带权.需要支持三个操作: D x 删掉编号为 \(x\) 的边 Q x k 查询与节点 \(x\) 联通的所有节点中,点权第 \(k\) 大节点的点权 C x v 将节点 \(x\) 点权改为 \(v\) 多组数据,每组数据最终需要输出所有查询的平均值 ( 保留 6 位 ) ,没有强制在线. \[ \text{…
题目让我们维护一个连通无向图,边有边权,支持加边删边和询问从\(x\)到\(y\)的异或最短路. 考虑到有删边这样的撤销操作,那么用线段树分治来实现,用线段树来维护询问的时间轴. 将每一条边的出现时间段标记到线段树上,表示在这一段询问中这条边存在. 异或最短路的处理方法与最大XOR和路径类似,给线段树上每个节点开一个线性基,找出当前所有的环,插入该节点的线性基,查询时任意找出一条从\(x\)到\(y\)的路径,到线性基中查询,即为答案. 具体实现时用可撤销并查集,采用按秩合并来优化,因为路径压缩…
Link \(\text{Solution:}\) 讲实话这题有点烦,不知道为啥改了下\(\text{dfs}\)就过了--原版本\(dfs\)好像没啥错啊-- 其实对于子树问题,我们求出原来树的\(dfs\)序列,则可以将它转化为一个序列问题.注意题目中说的是有根树,以\(1\)为根. 那么,我们一遍\(dfs\)求出序列后,把它插到询问里面,即更新为原序列. 注意,我们对应\(dfs\)序并不是原来的点,所以还需要一个数组\(rk\)维护映射\(point\to dfn\). 那么,对于维护…
题目传送门 Description 给出 \(n,k\) ,求出: \[\sum_{i=1}^{n} f_i·i^k \] 其中 \(f_i\) 表示斐波拉契第 \(i\) 项.\(n\le 10^{18},k\le 40\) . Solution 哎,被这个 \(k\le 40\) 误导了,以为是斯特林数./kk 发现假如我们用矩阵表示 \(f_i\),那么我们就只需要求出: \[\sum_{i=1}^{n} G^ii^k \] 其中 \(G=\begin{bmatrix}1 & 1\\ 1…
目录 Ural 1248 Sequence Sum 题解 题意 题解 程序 Ural 1248 Sequence Sum 题解 题意 给定\(n\)个用科学计数法表示的实数\((10^{-100}\sim10^{100})\),输出它们的和. Tip: 一个实数可以用科学计数法表示为\(x\times10^y\),其中\(1\le x<10\) \(x\)为实数,\(y\)是整数.输入时表示为\(xey\).保证输入的实数有\(19\)位有效数字.输出时用科学计数法,必须包括\(19\)位正确数…
---------- HDU 5288 OO’s Sequence 题意 给定一个数列(长度<$10^5$),求有多少区间[l,r],且区间内有多少数,满足区间内其它数不是他的约数. 数的范围$[1,10000]$.结果对$10^9+7$取模. Solution 首先可以预处理每个数的约数有哪些.对每个数存下它的位置有哪些. 然后可以枚举每一个位置,利用二分找到左边第一个是它约数的数,和右边第一个是他约数的数. 假设向左有L个数,向右有R个数.那么ans应该加上(L*R). 时间复杂度$O(n*…