20241017 练习记录
今天 duel 了一整天 CF 的题!虽然都是 800-2000 的……
CF1131C
平。
开始其实就猜到结论了,但感觉很假就没想下去,还去写什么二分答案随机化,唐完了。结论题,维护双端队列,an 从队头进,an-1 从队尾,an-2 从队头……以此类推,正确性显然。
CF888D
输!
想复杂了……对 k 分类讨论计算即可,没必要用什么容斥。
CF776C
赢!
很显然的一题,直接枚举 k 的次方,只用 log 次。然后维护前缀和,map 存一下计算答案。1 和 -1 要特判。
CF354A
赢!
找到一个分界点 p,左边全部是从左边选,右边全部是从右边选的,然后直接算。
CF612D
赢!
很勾史的一个离散化题,这里用到了一个小技巧,就是坐标全部乘 2,这样就可以判断线段是不是首位相接,用树状数组去维护。
CF1234E
赢!
手玩找规律,树状数组维护,比较简单推出来,不赘述了。
CF1179D
输!
思考的太慢了,但最后还是做出来了。先离散化,然后从小到大考虑,看看对于 b_i 这个值,需要几次才能把这些位置全部满足 a_i=b_i,写一个 ST 表就行了。
接下来是下午做的题!手速场,开始!
CF777C
输!
jzq 手速太快啦!!!单调栈维护每一列前面第一个大于它的位置,每一行取最大值,然后推推推,做完了。
CF1452A
输!
急了比对手慢 1 分钟!思考速度还是偏慢……800 简单题,不说了。
CF1110C
赢!
打表找规律……但我还是花了一些时间。对于 2^k - 1 这样的数,答案是最大真因数,反之则是第一个大于他的 2^k-1。
CF16B
忘了。
贪心。
CF1227D1
忘了
贪心
CF1248D1
输!
其实还是能想出来的……对自己的水平不够有信心……考虑合法括号序列的特征,然后维护前缀和什么的就做完了。
CF1151B
输!
做法太麻烦了,特判了一堆点。做法就是找一个位使得这一行有 1 的也有 0 的,然后根据其他几行随便选,根据奇偶性取选 0 还是 1 就行。
真正手速场开始了!
CF822A
vs lzh,赢!
输出最小数的阶乘。
CF735A
vs lzh,赢?
枚举。
CF1678A
vs lzh,赢?
构造 0 即可。
CF1352B
vs lzh,赢!
构造 1,1,1,1,1,...,x 或者 2,2,2,2,...,x。
CF1762A
vs cjw,赢!
枚举最少次数的那个 a_i。
CF1415A
vs cjw,输!
CE 没提示,浪费了一些时间。
CF1051C
vs lzh,赢!
出现次数为 1 的数的个数记为 c1,大于等于 3 的记为 c3,等于 2 的没用,然后就是把 c1 平分,如果需要就把 c3 分出来一个。
CF1338A
vs lzh,输!
枚举二进制位。
CF1163C1/C2
输!
其实应该尝试一下的,不然就赢了。直接算 k,b,然后共线平行判一下做完了。
共计 24 个题!
总结:STL 的使用更熟练了!感觉对于位运算的一些操作有点薄弱,CF 的题还是很思维的,想不出来先别急着弃,还可以多思考一会。