2019中国大学生程序设计竞赛(CCPC) - 网络选拔赛
目录
Contest Info
[Practice Link](https://cn.vjudge.net/contest/321878#overview)
Solved | A | B | C | D | E | F | G | H | I | J | K |
---|---|---|---|---|---|---|---|---|---|---|---|
8/11 | O | O | O | O | O | O | O | O | - | - | - |
- O 在比赛中通过
- Ø 赛后通过
- ! 尝试了但是失败了
- - 没有尝试
Solutions
A - &
题意:
要求找一个最小的正整数C使得(A⊕C)&(B⊕C)这个式子最小。
思路:
注意是C是正整数。
B - array
题意:
有一个排列ai,有两种操作:
- 将ax变成ax+107
- 询问没有在区间[1,r]里面出现过并且≥k的最小的数
思路:
- 权值线段树维护i出现的下标
- 那么只需要找一个最小的x,使得[k,x]这段数出现的下标的最大值>r即可。
- 权值线段树上二分即可,复杂度有点玄学。。
C - K-th occurrence
题意:
给定一个字符串S,询问一个子串S[l,r]在原串中第k次出现的起始位置
思路:
考虑一个起始位置i出现了S[l,r],那么有后缀Si以及后缀Sl的lcp肯定大于等于r−l+1。
那么后缀排序之后,这些起始位置在Rank[]数组中是连续的一段,二分找到左右界,主席树查询区间第k大即可。
D - path
题意:
E - huntian oy
题意:
计算:
\begin{eqnarray*}
f(n,a,b)=\sum\limits_{i=1}^n \sum\limits_{j=1}^i gcd(i^a-j^a,i^b-j^b)[gcd(i,j)=1] \bmod (10^9+7)
\end{eqnarray*}
思路:
当a > b且gcd(a, b) = 1时,有gcd(a^n - b^n, a^m - b^m) = a^{gcd(n, m)} - b^{gcd(n, m)}。
那么原式为:
\begin{eqnarray*}
f(n, a, b) &=& \sum\limits_{i = 1}^n \sum\limits_{j = 1}^i (i - j)[gcd(i, j) = 1] \bmod (10^9 + 7) \\
&=& \sum\limits_{i = 1}^n \sum\limits_{j = 1}^i i[gcd(i, j) = 1] -j[gcd(i, j) = 1] \\
&=& \sum\limits_{i = 1}^n i\varphi(i) - \frac{i\varphi(i) - [n = 1]}{2} \\
&=& \frac{\sum\limits_{i = 1}^n i\varphi(i) - 1}{2}
\end{eqnarray*}
令f(n) = i\varphi(i),配一个g = id(n),有(f * g)(n) = \sum\limits_{i \;|\; n} i \varphi(i) \frac{n}{i} = i \sum\limits_{d \;|\; i} \varphi(i) = i^2
杜教筛即可。
F - Shuffle Card
签到。
G - Windows Of CCPC
签到。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
· 用 C# 插值字符串处理器写一个 sscanf
2018-08-24 2017 Benelux Algorithm Programming Contest (BAPC 17) Solution