概述
C1. Pokémon Army (easy version)
题意:给出一个序列 a a a ,要求求出一个单调递增的下标序列 b b b ,使得 a n s = a b 1 − a b 2 + a b 3 − a b 4 + . . . ans=a_{b_1}-a_{b_2}+a_{b_3}-a_{b_4}+ ... ans=ab1−ab2+ab3−ab4+... 最大,输出这个最大值。
思路:类似于一道博弈 dp。定义 d p _ m i n i , d p _ m a x i dp_min_i,dp_max_i dp_mini,dp_maxi 为选择 i 时的下界和上界,转移时反转即可。
AC代码:https://codeforces.com/contest/1420/submission/155273710
B. Applejack and Storages
题意:
你一开始有 n 根木棍,接下来有 q 次操作。
操作如下:
+ x
增加一根长度为 x x x 的木棍。- x
减少一根长度为 x x x 的木棍,保证减少之前有长为 x x x 的木棍。
你要计算出每次操作之后能否用 8 根木棍拼出一个矩形(可以是正方形)和一个正方形。
思路:存储每一种长度出现的次数,记录 4 个一组,2 个一组的个数,每次更新即可。“YES”的前提:4 个一组的个数大于 0,2个一组的个数大于 3。
练习了桶存和动态维护答案。
AC代码:https://codeforces.com/contest/1393/submission/155284388
C. Beautiful Sets of Points
略。
AC代码:https://codeforces.com/contest/268/submission/155287629
A. Balance the Bits
题意:给定 n n n 和 a a a 序列,构造两个合法的括号序列,使得这两个括号序列第 i i i 个字符相同当且仅当 a i = 1 a_i=1 ai=1
题解:Balance the Bits(思维+括号序列构造)
思路:合法括号序列也就是无论何时 count(‘(’) ≥ count(‘)’) 。可以理解为y总讲的二维平面上的行走路线,或者是 括号得一分 括回扣一分,任何时候两个序列的分数都>=0,且最后分数为 0 。
那构造的时候,让两个括号序分数尽量接近 0 数轴,让两个分数之差不超过 2 ,且平均数在 1,2 两个数来回横跳,就能保证不会跳到 0 下边,且最后能回到 0。
AC代码:https://codeforces.com/contest/1503/submission/155349086
A. Bits
题意: n n n 组询问,每次给出一个区间 l , r l, r l,r,你需要输出在这个区间内二进制表示中1的个数最多的数。 如有多个答案,输出最小的那个。
题解:题解 CF484A 【Bits】
思路:刚开始自己的思路是,对于 l,r 消去相同的前导 0 1,然后答案就是 r 或者小于等于 r 的最大满位整形。可以过。后来发现题解的贪心更简单。
另外 unsigned int __builtin_popcount/_clz/_ctz(unsigned int)
的参数是 unsigned int
,被坑了。改成了 bitset<64>(x).count()
AC代码:https://codeforces.com/contest/484/submission/155351415
https://codeforces.com/contest/484/submission/155352223
最后
以上就是安详夕阳为你收集整理的【4.29】Codeforces 刷题的全部内容,希望文章能够帮你解决【4.29】Codeforces 刷题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复