专栏文章

CF665(EDU12) 题解

题解参与者 2已保存评论 2

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
2 条
当前快照
1 份
快照标识符
@mio1dt77
此快照首次捕获于
2025/12/02 11:46
3 个月前
此快照最后确认于
2025/12/02 11:46
3 个月前
查看原文

A. Buses Between Cities

题目基本信息
考察:数学(1600\color{yellow}1600)。
题目简介:
有两座名为 A 市和 B 市的城市,它们之间有公交车行驶,公交车每天都从 A 或从 B 发车,始发车时间为 05:0005:00,末发车时间不晚于 23:5923:59,A 市发车间隔为 aa 分钟,行驶时间为 tat_a 分钟,B 市则分别为 bb 分钟和 tbt_b 分钟。
你驾驶着一辆从 A 市一时刻发出的公交车,求你在 A 市和 B 市之间的道路上(不含 A 市和 B 市)遇到了几辆公交车。
数据范围:
  • 1a,ta,b,tb1201\le a,t_a,b,t_b\le 120
不妨用从 B 市的始发时间代表每一辆公交车,发现我们没必要弄清楚是在公交车是在哪里相遇的,我们只需要弄清楚相遇几次。 也就是说,我们只需要弄清楚这段时间遇到的公交车的始发时间区间即可,后面几辆公交车就好求了。
时空复杂度均为 Θ(1)\Theta(1)

B. Shopping

题目基本信息
考察:模拟(1400\color{orange}1400)。
题目简述:
你是一个卖家,售卖 kk 种物品,编号从 11kk,初始排列为 {pk}\{p_k\},有 nn 个买家来你这买东西,每人买了 mm 个编号不同的物品,每次购买后你都要一次进行如下操作:
  1. pospos 为该物品在 {pk}\{p_k\} 中出现的位置。
  2. 花费 pospos 的体力将该物品挪到第一位。
问最后花费的体力。
数据范围:
  • 1mk1001\le m\le k\le 100
  • 1n1001\le n\le 100
模拟即可。
时间复杂度为 Θ(nmk)\Theta(nmk),空间复杂度为 Θ(nm+k)\Theta(nm+k)

C. Simple Strings

题目基本信息
考察:贪心(1300\color{orange}1300)。
题目简介:
给你一个仅包含英文小写字母的字符串 ss,每次操作可以将字符串里的一个字符修改成另一个英文小写字母,问经过最少操作后的一种使得相邻字符不同的一种方案。
数据范围:
  • 1s2×1051\le |s|\le 2\times 10^5
我们可以直接贪心,如果一个字符与它的前一个字符相同我们就直接修改成另一个与前后字符均不相同的字符。
证明显然。 时空复杂度均为 Θ(n)\Theta(n)

D. Simple Subset

题目基本信息
考察:数学,质数筛(1800\color{green}1800)。
题目简介:
有一个可重集 AA,满足 A=n|A|=n,求它的最大子集满足:元素两两的和均是质数。
数据范围:
  • 1n10001\le n\le 1000
  • i[1,n],1ai106\forall i\in[1,n],1\le a_i\le 10^6
注意到除了 22 外偶数都不是质数,也就是说除了最终集合内的元素两两除了两个 11 外奇偶性均不同,也就是说,最多只能有 22 个数大于 1111 同时若能选则尽量全选。那么我们根据以下情况讨论:
  1. 11 且无大于 11 的数。
  2. 11 且有一个大于 11 的数。
  3. 11 且有两个大于 11 的数。
  4. 有所有 11 且无大于 11 的数。
  5. 有所有 11 且有一个大于 11 的数。
  6. 有所有 11 且有两个大于 11 的数。
我们来简化一下分类讨论:
  • 以下情况可能会较优,同时它们的合法条件分别是:
    1. 11 且有一个大于 11 的数。
      条件任意。
    2. 11 且有两个大于 11 的数(设为 x,yx,y)。
      条件为 x+yprimex+y\in\text{prime}
    3. 11 且无大于 11 的数。
      条件任意。
    4. 11 且有一个大于 11 的数(设为 xx)。
      条件为 x+1primex+1\in\text{prime}
  • 以下情况不优或不合法:
    1. 11 且无大于 11 的数。
      由于根据上述,答案至少为 11,所以该情况不优。
    2. 11 且有两个大于 11 的数(设为 x,yx,y)。
      考虑反证法:
      x+1,y+1,x+yprime,x>1,y>1\because x+1,y+1,x+y\in\text{prime},x>1,y>1
      x+1>2,y+1>2,x+y>2\therefore x+1>2,y+1>2,x+y>2
      x+1,y+1,x+y{2k+1kZ}\therefore x+1,y+1,x+y\in\{2k+1|k\in\mathbb Z\}
      x+y{2k,kZ}\therefore x+y\in\{2k,k\in\mathbb Z\}
      推出矛盾。
根据上述模拟。
时间复杂度为 Θ(n2)\Theta(n^2),空间复杂度为 Θ(n)\Theta(n)

E. Beautiful Subarrays

题目基本信息
考察:trie(2100\color{green}2100)。
题目简介:
给你序列 {an}\{a_n\},求满足下列条件的 (l,r)(l,r) 的个数:
  • 1l,rn1\le l,r\le n
  • i=lraik\displaystyle\bigoplus_{i=l}^ra_i\ge k
数据范围:
  • 1n1061\le n\le 10^6
  • 1k1091\le k\le 10^9
  • i[1,n],1ai109\forall i\in[1,n],1\le a_i\le 10^9
显然,我们可以维护一个异或前缀和记作 {sumn}\{sum_n\},那么原条件可以转化为 sumrsuml1ksum_r\oplus sum_{l-1}\ge k,这个显然可以用 trie 树维护。
时空复杂度均为 Θ(nlogV)\Theta(n\log V)
F 不会/ll

评论

2 条评论,欢迎与作者交流。

正在加载评论...