近期题单
前言
开个题单补点题
题单
边独立集 && 牛客OI周赛1-提高组 A 分组 类似。这两道题的思路有点像我都没有做出来 自闭了!自闭了!
烂大街? 我看是我烂大街了,极度自闭
CF1185D,
CF1183H,
CF1183F,
CF1182E,
CF1182D,
CF1182C,
CF1188C,
CF1187D,
CF1187F,
CF1187E,
CF1197D
CF1185D
等差数列知识 + 思维。
排序后处理显然无错,把相邻两两数的差存起来,看是否有差值出现的次数>=n-3(n-1,n-2,n-3),可否用来作为公差。考虑一共有n-1个差值,删去一个数后有n-2个差值。
若公差g出现了n-1一次,则任意删一个元素
若公差g出现了n-2次,则特判是否在开头或结尾(不影响删去数后n-2个公差相等)
若公差出现n-2次或n-3次,也不在开头结尾,则在中间判断删掉某一位置后,前后拼接是否组成公差。
CF1183H
经典问题 求序列有多少种不同的子序列
留个坑 以后补
(等我完全通彻理解再写)
CF1183F
贪心 + 数学
设序列中的最大值为 g
设序列中 不与g成倍数关系 最大值是 t
设序列中 不与g,t成倍数关系 的最大值是 x
首先证明拿1个数 一定是拿 g 最大
证明拿2个数一定是拿 g 和 t。 证明:如果不拿g,随便拿一个数,不与g成倍数,那还不如换成g; 如果如果不拿g,拿两个g的因数,最大值是\(g/2\) + \(g/3\) < \(g\)。故选g最优
证明拿3个数有两种最优,一个是拿\(g+t+x\) ,一个是拿 \(g/2 + g/3 + g/5\) 后者有限定条件,故做比较
CF1182E
挺有意思的一道 思维 + 矩阵快速幂 + 数论知识
- 通过分析乘法递推式分析出 指数的加法递推式,然后开始矩阵快速幂,最后用得到的答案指数(指数取模要用数论知识) 快速幂求出答案