ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Diary & Solution Set - 多校度假

2022-06-14 17:02:45  阅读:147  来源: 互联网

标签:Set mathscr sum Powerful Solution Number 次数 Diary mathcal


\(\mathscr{Summary}\sim6.14\)

  Contest.

  总结等会儿写,好像要走了。

\(\mathscr{A}\sim\) 区间第 \(k\) 小

  给定 \(n,m\) 和序列 \(\{a_n\}\)。\(q\) 次询问,每次给出 \(l,r,k\),求将 \(a[l:r]\) 中所有出现次数多于 \(m\) 次的数替换为 \(n\) 后,\(a[l:r]\) 中第 \(k\) 大的值。强制在线。

  \(0\le a_i<n,q\le10^5\)。

  Tags:「A.扫描线」「A.数据结构-树套树」

  原题指明了形如 \(m=5\times10^3\) 和 \(m=10\) 之类的限制,通过迷惑选手增加题目难度属于是。

  先忽略在线,考虑扫描线,从左到右扫描元素,设当前扫描到 \(p\),\(a_p=x\),其最近若干次出现位置为 \(i_0,i_1,i_2,\cdots,i_m,i_{m+1}=p\),那么当左端点 \(l\in(i_1,i_{m+1}]\) 时,\(x\) 的出现次数会在原来的基础上 \(+1\);当 \(l\in(i_0,i_1]\) 时,本来 \(x\) 在 \([l,r]\) 的出现次数为 \(m\),但是 \(p\) 让其出现次数超过 \(m\),所以将 \(l\in(i_0,i_1]\) 时 \(x\) 的出现次数置为 \(0\)(即 \(-m\))。可以用权值线段树维护这一过程。

  强制在线?主席树套主席树即可,毕竟 \(1\text{G}\) 随便用。复杂度 \(\mathcal O(n\log^2n)\)。

\(\mathscr{B}\sim\) 求和

  定义积性函数 \(f_k(p^c)=(-1)^c[c\le k]\),求

\[\sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^mf_k(\gcd(i,j))\bmod 2^{30}. \]

  \(n\le10^{10}\),\(m\le40\)。

  Tags: 「A.数学-数论」「A.数学-Min_25 筛」「A.数学-Powerful Number 筛法」

  基础化简:

\[\begin{aligned} \textit{ans} &= \sum_{k=1}^m\sum_{d=1}^nf_k(d)\sum_{i=1}^{n/d}\sum_{j=1}^{n/d}[i\perp j]\\ &= \sum_{k=1}^m\sum_{d=1}^nf_k(d)\left(2\sum_{i=1}^{n/d}\varphi(i)-1\right). \end{aligned} \]

后面反手杜教筛,现在式子长成

\[\textit{ans}=\sum_{k=1}^m\sum_{d=1}^nf_k(d)g(n/d). \]

你大可以直接莽 Min_25,\(\mathcal O\left(\frac{mn^{3/4}}{\log n}\right)\) 能过。

  发现 \(f_k(p)=\mu(d)\),这个时候就很激动地想到 Powerful Number。考虑一下 Powerful Number 搜索过程中对函数值的维护,可以用一个 bit 表示某个 \(f\) 的点值,popcount 一下也能快速求出 \(\sum_k f_k(x)\)。然后类似于杜教筛的优化方法,线性筛(貌似需要再容斥一下)求出 \(f\) 前 \(n^{2/3}\) 个点值,后续的前缀和再用 Powerful Number 算。可以得到 \(\mathcal O(n^{2/3})\) 的算法。(更具体地,可以说是 \(\mathcal O(n^{2/3}\frac{m}{\omega})\),但 \(m\) 小得可怜 w。)

\(\mathscr{C}\sim\) 树

  给定一棵含有 \(n\) 个结点的树,点 \(u\) 有点权 \(a_u\),初始为 \(0\)。每次操作指定路径 \(P(u,v)\),对于 \(e=\lang x,y\rang\in P(u,v)\),若 \(x<y\),令 \(a_x\gets a_x+1,a_y\gets a_y+1\);否则令 \(a_x\gets a_x-1,a_y\gets a_y-1\)。给出最终的点权,构造操作方案。先最小化操作次数 \(m\),再最小化 \((u,v)\) 序列的字典序。

  \(n\le10^6\),保证 \(m\le n\)。

  Tags: 「B.贪心」「C.性质/结论」

  被诈骗了 /jk

  注意操作的可合并性,若点 \(u\) 是某个操作的起点,则其一定不是另一个操作的终点,反之亦然。此外,通过考虑每条边被经过的次数,可以发现用每个点作起点(\(+1\))/终点(\(-1\))的次数集合可以唯一描述操作的效果。我们只需要求出这一集合,然后贪心构造字典序最小的操作即可。

  如何求呢?还是将子树作为贪心的子结构。令 \(f(u)\) 表示在放置最少的路径的情况下,从 \(u\) 向上走的路径条数(若为负,则是向下走);\(g(u)\) 表示 \(u\) 作起点的次数。设 \(u\) 的父亲为 \(w\),孩子们为 \(v\),那么

\[f(u)=([u<w]-[w<u])\left(a_u-\sum_v([v<u]-[u<v])f(v)\right),\\ g(u)=f(u)-\sum_vf(v). \]

  \(\mathcal O(n)\) 即完成所有工作。

标签:Set,mathscr,sum,Powerful,Solution,Number,次数,Diary,mathcal
来源: https://www.cnblogs.com/rainybunny/p/16375383.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有