07 2021 档案

摘要:\(\text{Problem}\) 求 \[ \sum_{i=1}^n \sum_{j=1}^m \sigma_1(\gcd(i,j)) \] 当且仅当 \(\sigma(\gcd(i,j)) \le a\) 时有贡献 多组询问,答案对 \(2^{31}\) 取模 \(1 \le n,m \le 阅读全文
posted @ 2021-07-22 15:35 leiyuanze 阅读(37) 评论(0) 推荐(0)
摘要:$\text 非常巧妙的二分答案 因为只有一个询问,且答案满足单调性,所以二分答案 \(mid\) 原序列中大于等于 \(mid\) 的数的位置赋为 \(1\),否则赋为 \(0\) 然后走一遍排序操作,用线段树赋值完成排序 最后检查 \(q\) 位置上的情况,\(0\) 就不行,\(1\) 就可以 阅读全文
posted @ 2021-07-21 21:40 leiyuanze 阅读(18) 评论(0) 推荐(0)
摘要:$\text 支持区间加区间翻转区间最大值 $\text \(\text{FHQ-Treap}\) 两个标记加与翻转 然后维护区间最大值 $\text #include <cstdio> #include <algorithm> #include <ctime> #define re registe 阅读全文
posted @ 2021-07-21 20:10 leiyuanze 阅读(43) 评论(0) 推荐(0)
摘要:$\text 设 \(f_{x,i}\) 表示以 \(x\) 为根的子树 \(i\) 天后的最大收益 那么 \(f_{x,i} = \max(f_{x,i-1},w_x [d[x] \ge i] + \sum f_{v,i})\) 这样的转移时 \(O(nk)\) 的,只能拿到 \(34pts\) 阅读全文
posted @ 2021-07-21 19:15 leiyuanze 阅读(86) 评论(0) 推荐(0)
摘要:\(Solution\) 非常板的一道题,支持区间翻转 本人采用 \(\text{FQH-Treap}\) 实现,按排名分裂 题目显然可以转化为找区间最小值的位置,只要每次把当前最小值扔出 \(\text{Treap}\) 为处理最小值相同的情况,就离散化处理 然后维护子树最小值就对了 $\text 阅读全文
posted @ 2021-07-20 21:45 leiyuanze 阅读(54) 评论(0) 推荐(0)
摘要:$\text $\text 显然 \(f=\mu^2\) 那么 \[ \begin{aligned} \sum_{i=1}^n \sum_{j=1}^n (i+j)^k &= \sum_{d=1}^n \mu^2(d) d^{k+1} \sum_{i=1}^{\lfloor \frac{n}{d} 阅读全文
posted @ 2021-07-20 15:55 leiyuanze 阅读(42) 评论(0) 推荐(0)
摘要:$\text 求 \[ \prod_{i=1}^n \prod_{j=1}^m f({\gcd(i,j)}) \] 其中 \[ f(n)= \begin{cases} 0 & n=0 \\ 1 & n=1 \\ f(n-1)+f(n-2) & n > 1 \end{cases} \] \(T\) 组 阅读全文
posted @ 2021-07-20 15:30 leiyuanze 阅读(39) 评论(0) 推荐(0)
摘要:$\text JZOJ上,求 \[ \sum_{i=1}^n \sum_{j=1}^m \gcd(i,j)^k \] 对 \(10^9+7\) 取模 \(n,m,k \le 5 \times 10^6\) LG 上,是一个加强版,有 \(T(T\le 2 \times 10^3)\) 组数据 $\t 阅读全文
posted @ 2021-07-20 15:12 leiyuanze 阅读(50) 评论(0) 推荐(0)
摘要:$\text 求 \[ \left( \sum_{i=1}^n \sum_{j=1}^m lcm(i,j) \right) \bmod{20101009} \] \(n \le 10^7\) $\text 套路地推式子 \[ \begin{aligned} \sum_{i=1}^n \sum_{j= 阅读全文
posted @ 2021-07-19 21:41 leiyuanze 阅读(36) 评论(0) 推荐(0)
摘要:$\text 求 \[ \left(\sum_{i=1}^n \sum_{j=1}^n i j \gcd(i,j)\right) \bmod p \] \(n \le 10^{10},5 \times 10^8 \le p \le 1.1 \times 10^9\) 且 \(p \in \mathb 阅读全文
posted @ 2021-07-18 20:11 leiyuanze 阅读(50) 评论(0) 推荐(0)
摘要:$\text 这题怎么做非常明显 依照关卡循环,然后利用数据结构维护当天用的剑(如权值线段树或平衡树,建议 \(set\)) 通过一元同余方程解出当前关卡的答案(没有或有无数个,用通解表示) 把每个关卡答案的通解联立起来,就有了一堆同余方程组 扩展中国剩余定理求解即可 注意无解情况的判断(即解方程时 阅读全文
posted @ 2021-07-18 19:11 leiyuanze 阅读(48) 评论(0) 推荐(0)
摘要:$\text 求 \(\sum_{i=1}^n \varphi(i)\) 和 \(\sum_{i=1}^n \mu(i)\) \(1 \le n < 2^{31}\) \(Solution\) 终于开始学杜教筛了!!! 求积性函数 \(f\) 的前缀和,杜教筛可以低于线性 考虑卷积,构造积性函数 \ 阅读全文
posted @ 2021-07-15 21:38 leiyuanze 阅读(47) 评论(0) 推荐(0)
摘要:$\text 在一个矩阵里选数,每行最多选两个,每列最多选两个,最大会价值 \(n,m \le 30\) $\text 对个这个限制如何实现? 跑费用流 把行看做点,列看做点 点对 \((i,j)\) 就用 \(i\) 行点连向 \(j\) 列点,流量为 \(1\),费用为 \(-v[i][j]\) 阅读全文
posted @ 2021-07-14 15:23 leiyuanze 阅读(59) 评论(0) 推荐(0)
摘要:$\text 1.询问区间最小值是否大于 \(0\) 2.区间加(可正可负) 3.区间取 \(\max\) 如果某个数经过操作后小于等于 \(0\),以后的操作就不会再影响这个数 $\text 显然要用线段树维护这个区间 区间加和 \(\max\) 打个双标记就好了,给加法优先 然后考虑区间加的过程 阅读全文
posted @ 2021-07-14 15:13 leiyuanze 阅读(60) 评论(0) 推荐(1)
摘要:$\text 求 \(\sum_{i=1}^n \sum_{d|n} \gcd(d, \frac{i}{d})\) 有 \(n \le 10^{11}\) $\text 一眼就知道要欧拉反演(虽然考场写了莫反) 那么就要套路套路地推式子了 先给出欧拉反演的一般形式 \(n = \sum_{d|n} 阅读全文
posted @ 2021-07-13 22:04 leiyuanze 阅读(70) 评论(0) 推荐(0)
摘要:$\text 非常经典的题 $\text 显然将思考过程分为两步 $\text 求合法珍珠的种类数 设 \(f(i)\) 表示 \(\gcd = i\) 的本质不同的珍珠种类数 \(g(i)\) 表示 \(i | \gcd\) 的本质不同的珍珠种类数 那么 \(g(i) = \sum_{i|d} f 阅读全文
posted @ 2021-07-12 21:12 leiyuanze 阅读(49) 评论(0) 推荐(0)
摘要:$\text 求一个 \(DAG\) 的最长反链 $\text 由 \(Dilworth\) 定理只最长反链等于最小链覆盖 而原图的链是可相交的,所以我们先做一遍 \(Floyd\) 传递闭包,使得原图的链不必相交即可覆盖 这样就转化为最小链覆盖(顶点不可相交) 于是用网络流经典模型解决 $\tex 阅读全文
posted @ 2021-07-12 20:45 leiyuanze 阅读(46) 评论(0) 推荐(0)
摘要:$\text 给出一个项链,删去连续的一部分,使剩下的对称,且长度最长 $\text 可以发现,剩下的合法项链一定是由两个回文串接起来(由对称性质可知) 先套路地将项链倍长 那么我们只要用 \(\text{Manacher}\) 算出以每个点中心的回文半径 \(p[i]\) 找到两个中心 \(i,j 阅读全文
posted @ 2021-07-11 20:58 leiyuanze 阅读(138) 评论(0) 推荐(1)
摘要:$\text 标准四维偏序 带修改(加和删除)和询问的三维空间正方体内部(包括边上)的点的数目 $\text 打法很多,\(\text{cdq}\) 套 \(\text{cdq}\) 加上树状数组处理或者 \(\text{cdq}\) 套树套树(如树状数组套线段树)等方法都可以 \(\text{K- 阅读全文
posted @ 2021-07-10 15:44 leiyuanze 阅读(98) 评论(0) 推荐(0)
摘要:$\text 无根树同构的判断 $\text 考虑树哈希,注意使用较正确的哈希方法 无根树同构有个性质 只要判断以这两棵树的重心为根是否同构即可 $\text #include<cstdio> #include<iostream> #include<algorithm> #include<cstri 阅读全文
posted @ 2021-07-08 15:34 leiyuanze 阅读(47) 评论(0) 推荐(0)
摘要:引子 最小斯坦纳树 大概意思就是一个图给出 \(k(k \le 10)\) 个关键点,要求选出若干条边使得这 \(k\) 个关键点连通,求边权和的最小值 \(Analysis\) 发现 \(k\) 很小,考虑状压 \(dp\) 为得到最优解,我们需要考虑以每个点为根的形态 设 \(f_{i,S}\) 阅读全文
posted @ 2021-07-07 20:51 leiyuanze 阅读(64) 评论(0) 推荐(0)
摘要:$\text{Poblem}$ 求 $\sum_{i=l}^r \mu(i)$ $1 \le l,r \le 10^{18}, r - l \le 10^5$ $\text{Analysis}$ 我们做过 $r,l \le 10^{12}$ 次方的区间筛积性函数 但这是因为 $\sqrt r$ 内的 阅读全文
posted @ 2021-07-07 19:27 leiyuanze 阅读(85) 评论(0) 推荐(0)
摘要:$\text 签到题 $\text 区间筛积性函数,如 \(\varphi\) 因为 \(r-l \le 10^6\),所以这个问题就是非常经典的了 比较常见的技巧 \(\varphi(n)=n\prod(1-\frac 1 p)\) \([l,r]\) 以内的数若不为素数分解质因数后最小的必然小于 阅读全文
posted @ 2021-07-06 16:20 leiyuanze 阅读(41) 评论(0) 推荐(0)
摘要:$\text for(int S = 0; S < (1 << n); S++) for(int T = S; T; T = (T - 1) & S) //do something $\text \(T\) 为 \(S\) 的子集,且枚举子集的复杂度是 \(O(3^n)\) 阅读全文
posted @ 2021-07-06 11:49 leiyuanze 阅读(50) 评论(0) 推荐(0)
摘要:$\text 最大值最小很容易想到二分答案 然后用 \(dp\) 检查 设 \(f_i\) 表示当前行最后一个为 \(i\) 时最优情况最大空格数是否小于 \(mid\) 若 \(f_i = 1\) 可行 则存在一个 \(j\),令 \(j\) 为当前行开头 使得 \(f_{j-1} = 1\) 且 阅读全文
posted @ 2021-07-05 16:18 leiyuanze 阅读(35) 评论(0) 推荐(0)
摘要:$\text 给定一个由前 \(n\) 个小写字母组成的串 \(S\)。 串 \(S\) 是阶乘字符串当且仅当前 \(n\) 个小写字母的全排列(共 \(n!\) 种)都作为 \(S\) 的子序列(可以不连续)出现。 判断 \(S\) 是否是阶乘字符串 多组数据 $\text 一个结论: 当 \(n 阅读全文
posted @ 2021-07-05 16:01 leiyuanze 阅读(60) 评论(0) 推荐(0)
摘要:$\text [POI2011]MET-Meteors $\text 为方便操作,我们把长度为 \(m\) 的环倍长,把修改 \(l < r\) 的 \(r\) 改为 \(r+m\) 而后就可以整体二分了 二分答案,把需要的修改放到树状数组,检查询问时一个一个枚举其所在位置,相应划分询问,继续二分 阅读全文
posted @ 2021-07-05 08:06 leiyuanze 阅读(42) 评论(0) 推荐(0)
摘要:\(\text{Problem}\) 动态区间第 \(k\) 小 Dynamic Rankings \(\text{Analysis}\) 整体二分 原本一个询问可二分,但多个询问效率太低 考虑离线,把修改和询问扔到一起 二分答案,运用树状数组之类的东西处理完修改操作 依次检查询问,划分左右,初步确 阅读全文
posted @ 2021-07-05 07:52 leiyuanze 阅读(43) 评论(0) 推荐(0)