CF EDU 169

CF EDU 169

A

  • 题意:

    一条线上给定 n 个点,询问是否能新插入一个点,使得这个点是距离这 n 个点都是最近的

  • 题解:

    n > 2 n > 2 n>2 时,无解

    n = 2 n = 2 n=2 时,直接插入到这两个点中间即可

B

  • 题意:

    总共 n n n 个房间,第 i i i 个房间与第 i + 1 i+1 i+1 个房间中间有一扇门,假如 A A A 可能在 [ l , r ] [l, r] [l,r] 中任意一个房间, B B B 在 [ L , R ] [L, R] [L,R] 中任意一个房间,最少需要关闭几扇门才能保证两人不可能见面

  • 题解:

    如果两人所在区间不相交的话,关闭 1 扇门即可

    如果两人可能所在区间相交的话,相交区间的所有门必须关闭,最后判断一下边界即可

C

  • 题意:

    AliceBob 取数字,Alice 先手,Alice 取到的数字和为 ABob 取到的数字和为 BAlice 想最大化 A-BBob 想最小化 A-B,在游戏开始前 Bob 可以增大任意数字,但是总增加量不能超过 k,求 A-B 的最小值

  • 题解:

    每个人都尽量取剩下的最大的数字

    将数组排序,模拟取数字的过程,将最后结果减去 k 即可

    当有偶数个数字的时候,A-B 的最小值不会小于 0,奇数个数字的时候,A-B 的最小值不会小于原先所有数字的最小值

D

  • 题意:

    总共有四种颜色的门,每个城市会有两扇不同颜色的门,其中城市 ij 如果具有相同颜色的门,他们之间是互相可以到达的,所花费的价值是 ∣ i − j ∣ |i-j| ∣i−j∣,每次询问城市 x x x 去 y y y 所花费的最小花费是多少

  • 题解:

    若 x x x 和 y y y 具有相同颜色的门,最小花费就是 ∣ x − y ∣ |x-y| ∣x−y∣

    否则枚举所有与 x x x 和 y y y 不一样的情况,找到 x x x 右边第一个满足条件的门和 y y y 左边第一个满足条件的门,直接处理即可

  • code

E

  • 题意:

    取石子游戏,若一堆石子有 x 个,只能从中取出 y 个,其中 gcd(x, y) 必须等于 1。给定多堆石子,第 i 堆有 a i a_i ai 个石子,问先手和后手谁能赢

  • 题解:

    SG函数

    考虑处理出来每个 a i a_i ai 的 S G \rm SG SG 值。

    考虑 S G i \rm SG_i SGi,若 i i i 是质数,可以取任意 [ 1 , i − 1 ] [1, i-1] [1,i−1] 个石子,所以 S G i = m a x { S G j } + 1 SG_i=max\{SG_j\}+1 SGi=max{SGj}+1

    若 i i i 不是质数,对于 i i i 的最小质因数 p p p, p p p 的所有倍数都取不到,因此 S G i = S G p + 1 SG_i = SG_p + 1 SGi=SGp+1

    之后直接用 S G \rm SG SG 定理即可

F

  • 题意:

    给定一个数组 A,每次可以进行一下两种操作

    1. 用 A i + A i + 1 A_i+A_{i+1} Ai+Ai+1 替换 A i A_i Ai 和 A i + 1 A_{i+1} Ai+1
    2. 将 A i A_i Ai 拆成两个数字的和并替换掉 A i A_i Ai

    f ( A ) f(A) f(A) 表示让 A A A 数组变成回文数组的最小次数,求 ∑ 1 ≤ l ≤ r ≤ n ( A [ l : r ] ) \sum\limits_{1\le l \le r \le n}(A[l:r]) 1≤l≤r≤n∑(A[l:r])

  • 题解:

    对于一个长度为 n n n 的数组,最坏情况是用 n − 1 n-1 n−1 次操作将其变成回文

    但是对于某一个数组 A A A,取其一个前缀和一个后缀,若这两个子段和相等,可以减少一次操作

    令 f l , r f_{l, r} fl,r 表示 A [ l : r ] A[l:r] A[l:r] 的最少操作次数,考虑 dp,最优情况一定是:

    f l , r = min ⁡ { f L , R + ( L − l ) + ( r − R ) } f_{l,r}=\min\{f_{L,R}+(L-l)+(r-R)\} fl,r=min{fL,R+(L−l)+(r−R)}

    也就是 f l , r + l − r = min ⁡ { f L , R + L − R } f_{l,r}+l-r=\min\{f_{L,R}+L-R\} fl,r+l−r=min{fL,R+L−R}

    其中 ∑ i = L l A i = ∑ i = R r A i \sum\limits_{i=L}^l A_i = \sum\limits_{i=R}^r A_i i=L∑lAi=i=R∑rAi

    对 A A A 做前缀和 s u m sum sum,转移条件变为:

    s u m l − s u m L − 1 = s u m r − s u m R − 1 sum_l-sum_{L-1}=sum_r-sum_{R-1} suml−sumL−1=sumr−sumR−1,

    也就是 s u m r − s u m l = s u m R − 1 − s u m L − 1 sum_r-sum_l=sum_{R-1}-sum_{L-1} sumr−suml=sumR−1−sumL−1

    开一个桶 D D D,有 f l , r + l − r = D [ s u m r − s u m l ] f_{l,r}+l-r=D[sum_r-sum_l] fl,r+l−r=D[sumr−suml],每次转移完 f l , r f_{l,r} fl,r 后,更新 D [ s u m r − 1 − s u m l − 1 ] D[sum_{r-1}-sum_{l-1}] D[sumr−1−suml−1] 即可

  • code

G

  • 题意:

    给定一个又数字组成的字符串 s s s,可以将其划分乘偶数个非空子串 s i s_i si,会以一下规则构成新字符串 t t t:

    • 依次对于每个 j ≤ i 2 j\le \frac{i}{2} j≤2i,将 s 2 × j s_{2\times j} s2×j 个 s 2 × j − 1 s_{2\times j - 1} s2×j−1 拼接到 t t t 后面( s i s_i si 下标从 1 1 1 开始)

    给定 n n n 和 k k k,对于 s s s 中每个长度为 k k k 的字串,求出其以上述方法生成的 t t t 的最小长度

  • 题解:

    单独考虑一个字串 s s s,发现划分后所有的 s 2 × j − 1 s_{2\times j-1} s2×j−1 的长度一定为 1 1 1

    令 f i , j f_{i,j} fi,j 表示考虑到第 i i i 位,现在所填写的子串要重复 j j j 次,这种情况的最小长度,有

    f i , j = f i − 1 , j + j f_{i,j}=f_{i-1,j}+j fi,j=fi−1,j+j

    f i , s i − 1 = min ⁡ { f i , s i − 1 , f i − 2 , k + s i − 1 } f_{i, s_{i-1}} = \min\{f_{i,s_{i-1}},f_{i-2,k}+s_{i-1}\} fi,si−1=min{fi,si−1,fi−2,k+si−1}

    考虑广义矩阵乘法,令 f i , 10 f_{i,10} fi,10 表示考虑到第 i i i 位,并且要更新 j j j 的值(也就是上面转移的第二种情况)

    因为要求多个子数组的答案,直接双指针就行

  • code

相关推荐
·云扬·3 分钟前
【PmHub后端篇】PmHub中基于Redis加Lua脚本的计数器算法限流实现
redis·算法·lua
周Echo周5 分钟前
20、map和set、unordered_map、un_ordered_set的复现
c语言·开发语言·数据结构·c++·算法·leetcode·list
zkmall8 分钟前
推荐算法工程化:ZKmall模板商城的B2C 商城的用户分层推荐策略
算法·机器学习·推荐算法
矿渣渣35 分钟前
AFFS2 的 `yaffs_ext_tags` 数据结构详解
数据结构·算法·文件系统·yaffs2
workflower1 小时前
使用谱聚类将相似度矩阵分为2类
人工智能·深度学习·算法·机器学习·设计模式·软件工程·软件需求
cwywsx1 小时前
Linux:进程控制2
linux·运维·算法
真的想上岸啊1 小时前
c语言第一个小游戏:贪吃蛇小游戏06
c语言·算法·链表
边跑边掩护1 小时前
LeetCode 648 单词替换题解
算法·leetcode·职场和发展
小森77672 小时前
(七)深度学习---神经网络原理与实现
人工智能·深度学习·神经网络·算法
迷茫不知归路2 小时前
操作系统实验习题解析 上篇
c++·算法·操作系统·实验课设