随笔分类 -  杂--小Trick

摘要:提要 看别人做的题找到的,联系一下最近做的两道CF和模拟赛题很自然地就会了。 一种不需要线段树分治的在线做法,但时空复杂度相对略高。 提示 一个显然的想法是考虑把“查询长度为 $K$ 的区间的最大值+次大值”变成“修改长度为 $K$ 的区间”。 如果所有插入操作和所有删除操作修改的区间相同,也就是只 阅读全文
posted @ 2022-07-27 16:43 __Anchor 阅读(67) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2022-07-02 17:35 __Anchor 阅读(1) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2022-07-02 16:50 __Anchor 阅读(0) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2022-06-28 16:30 __Anchor 阅读(0) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2022-06-25 11:06 __Anchor 阅读(0) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2022-06-25 10:38 __Anchor 阅读(0) 评论(0) 推荐(0)
摘要:树上最小路径覆盖 不交路径覆盖 树形dp或者贪心。 可交路径覆盖 经典结论:叶子数量除以二上取整,贪心即可。 DAG最小路径覆盖 不交路径覆盖 现在有这样一个问题:给出一个DAG,求最少多少条不相交路径可以将其覆盖。 解决办法是建立这样一个图,对每个点拆点 \(x,x+n\) ,然后对于每条边 \( 阅读全文
posted @ 2022-01-05 15:13 __Anchor 阅读(144) 评论(0) 推荐(0)
摘要:题目 链接:https://xjoi.net/contest/3538/problem/3 详见SCOI2009 围豆豆 分析 发现 \(n,m,d\) 都比较小,于是想到状压然后记搜。 发现这是个求最短路的过程,可以直接 \(SPFA\) 。 状态是 \(dp[x][y][S]\) 表示当前在坐标 阅读全文
posted @ 2021-12-24 22:51 __Anchor 阅读(56) 评论(0) 推荐(0)
摘要:题目 链接:https://xjoi.net/contest/3536/problem/2 SDOI2009 消防 树网的核线性版本 分析 经典题,有结论:选取的路径一定在直径上。 于是就很好做了,直接dp一下然后再双指针在直径上求一下即可。 代码 #include<bits/stdc++.h> u 阅读全文
posted @ 2021-12-24 18:48 __Anchor 阅读(43) 评论(0) 推荐(0)
摘要:题目 分析 好像是经典套路,但是我还是不会。 区间异或和并不好直接维护,于是想到按位处理。 枚举二进制的每一位,然后直接对于原序列所有数模一个 \(2^{k+1}\) (假设枚举的是 \(k\) ) 然后对当前位有影响的就是和在区间 \([2^k,2^{k+1}-1]\) 和区间 \([2^k+2^ 阅读全文
posted @ 2021-11-29 09:20 __Anchor 阅读(38) 评论(0) 推荐(0)
摘要:题目 P3747 [六省联考 2017] 相逢是问候 分析 首先根据扩展欧拉定理,可以知道每一个数最多取 \(\log\) 级别次模,也就是说一个点最多修改 \(\log\) 级别次就不会变了。 那么直接就是势能线段树的思想,直接线段树维护每一个区间的最小修改次数,然后每次暴力修改消耗势能,如果势能 阅读全文
posted @ 2021-08-23 10:11 __Anchor 阅读(80) 评论(0) 推荐(0)
摘要:题目 P5610 [Ynoi2013] 大学 分析 似乎是个简单题,容易想到势能分析,每一个点最多被除 \(\log\) 次。 于是问题变成快速找到一个数的所有倍数的位置。 直接对每一个数开一个 \(set\) 存其倍数集合,找到后可以判断是否删掉,也就是区间删除,可以并查集实现。 代码 #incl 阅读全文
posted @ 2021-08-20 19:46 __Anchor 阅读(61) 评论(0) 推荐(0)
摘要:题目 分析 线性基有一个奇妙的性质: 于是我们可以把区间修改变成单点修改,然后就是直接线段树维护了。 时间复杂度 \(O(n\log{n}\log^2{V})\) 代码 #include<bits/stdc++.h> using namespace std; template <typename T 阅读全文
posted @ 2021-08-05 19:59 __Anchor 阅读(27) 评论(0) 推荐(0)
摘要:题目 分析 首先容易写出方程是:\(dp[i]=dp[i-1]*10^{\lfloor lg(i) \rfloor+1}+i\) 。 然后我们发现这个$*10^{\lfloor lg(i) \rfloor+1}$并不好使用矩阵快速幂来优化。 但是这个值似乎很少,只在$[1,19]$有取值。 于是考虑 阅读全文
posted @ 2021-07-21 20:45 __Anchor 阅读(250) 评论(0) 推荐(0)
摘要:题目 P5324 [BJOI2019]删数 分析 动态开店线段树+分析性质。 首先我们要找出这个删数操作的性质,也就是:显然题中数的顺序没有关系,于是可以直接在值域上来看,然后发现如果把数轴画出来再按照个数在每一个映射点向前映射,需要修改的数的个数就是数轴上空的个数。 那么现在考虑有修改操作的时候: 阅读全文
posted @ 2021-05-17 21:11 __Anchor 阅读(53) 评论(0) 推荐(0)
摘要:题目 P5072 [Ynoi2015] 盼君勿忘 分析 莫队。 首先这道题有区间限制,数据范围也很明显,可以考虑离线莫队。 然后我们发现可以对于每一个数来算贡献,但是不好直接计算其出现次数,考虑转化。 发现其实可以转化成 \(2^{r-l+1}-2^{r-l-k+1}\) 次(全局的减掉不出现的,剩 阅读全文
posted @ 2021-05-07 00:19 __Anchor 阅读(56) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2021-04-27 00:14 __Anchor 阅读(0) 评论(0) 推荐(0)
摘要:P4692 [Ynoi2016] 谁的梦(set) 首先正难则反是必须想到的,我们可以考虑先不管所有的值,把全部值都作为答案统计一边,然后减去贡献即可。 重点在于怎么减去贡献,容易发现,我们这样做其实就是把每个序列分成了很多段,于是我们考虑用 set 维护每一个断点的前驱后继,然后暴力算答案即可。 阅读全文
posted @ 2021-04-16 16:01 __Anchor 阅读(53) 评论(0) 推荐(0)