ICode9

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

联合省选 2021 B 卷题解

2021-04-13 23:34:08  阅读:131  来源: 互联网

标签:10 cnt le 省选 题解 sum 张卡牌 枚举 2021


Day1

数对

给定 \(n\) 个正整数 \(a_i\),请你求出有多少个数对 \((i, j)\) 满足 \(1 \le i \le n\),\(1 \le j \le n\),\(i \ne j\) 且 \(a_i\) 是 \(a_j\) 的倍数。

\(2 \le n \le 2\times 10^5\),\(1 \le a_i \le 5 \times 10^5\)。

考虑使用桶,记 \(cnt_x\) 表示 \(a_i = x\) 的个数。

那么分两种情况讨论,第一种情况是 \(a_i = a_j = x\),对答案的贡献为 \(\sum \binom{cnt_x}{2}\);第二种是 \(a_i = x < a_j = y\),那么这时候枚举 \(a_i\) 的值 \(x\),同时枚举 \(x\) 的倍数 \(y\),对答案的贡献为 \(\sum\limits_{x} \sum\limits_{y} cnt_x cnt_y\)。

时间复杂度是经典的调和级数 \(O(\frac{n}{1} + \frac{n}{2} + \frac{n}{3} + \cdots) = O(n \ln n)\)。

卡牌游戏

有 \(n\) 张卡牌,第 \(i\) 张卡牌的正面有数字 \(a_i\),背面有数字 \(b_i\),初始时所有卡牌正面朝上。

现在可以将不超过 \(m\) 张卡牌翻面,最小化朝上的 \(n\) 个数字的极差。

\(3 \le n \le 10^6\),\(1 \le m < n\),\(1 \le a_i, b_i \le 10^9\),\(a_i\) 单调不下降,\(2n\) 个数字互不相同。

先把 \(a, b\) 拼成一个长度为 \(2n\) 的数组 \(c\) 排序。

对于这个有序的数组,极差即是选中的那一段 \(l, r\) 的 \(c_r-c_l\)。

于是用双指针枚举 \(l, r\),不在 \(l, r\) 当中则意味着那一位被删除,具体要求是:

  • 删掉的 \(a\) 面不超过 \(m\);
  • 不存在同一张卡牌的 \(a, b\) 面同时被删除。

对于第一条开一个 \(cnt\) 维护,第二条开一个 \(vis\) 数组维护即可。

时间复杂度 \(O(n \log n)\),不明白 \(a\) 有序有什么意义。

图函数

对于一张 \(n\) 个点 \(m\) 条边的有向图 \(G\),定义函数 \(f(u, G)\):

  • 初始化返回值 \(cnt = 0\),图 \(G' = G\)。
  • 从 \(1\) 至 \(n\) 按顺序枚举顶点 \(v\),如果当前的图 \(G'\) 中,从 \(u\) 到 \(v\) 与从 \(v\) 到 \(u\) 的路径都存在,则将 \(cnt + 1\),并在图 \(G'\) 中删去顶点 \(v\) 以及与它相关的边。
  • 第 \(2\) 步结束后,返回值 \(cnt\) 即为函数值。

现在给定一张有向图 \(G\),请你求出 \(h(G) = f(1, G) + f(2, G) + \cdots + f(n, G)\) 的值。

更进一步地,记删除(按输入顺序给出的)第 \(1\) 到 \(i\) 条边后的图为 \(G_i\),请你求出所有 \(h(G_i)\) 的值。

\(2 \le n \le 10^3\),\(1 \le m \le 2 \times 10^5\),\(1 \le x_i, y_i \le n\),没有重边和自环。

标签:10,cnt,le,省选,题解,sum,张卡牌,枚举,2021
来源: https://www.cnblogs.com/syksykCCC/p/14655838.html

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

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

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

ICode9版权所有