D. Double Strings (暴力枚举)
题意:有1~n个字符串,输出s[ i ]是否可以用2个子串拼接而成,是输出1,否则0
题解:注意到字符串长度不超过8,可以用set存每个字符串,再枚举一下每个字符串是否可以拆成set中的字符串
代码:
#include
#include
#include
#include
E. Mirror Grid
题意:给一个n * n 只有0 或 1组成的单元格,给定操作:翻转0或1。输出最少操作次数使得每个单元格每次翻转0°, 90°, 180° 和 270°后仍不变.
题解:下标从0开始,对于(x, y) 翻转后的坐标为(y, n - x - 1)只需枚举每一个单元格翻转4次后累加0或1翻转的最小次数
#include
#include
#include
#include
F. Yet Another Problem About Pairs Satisfying an Inequality (前缀和)
题意:给定一个数组,输出满足 ( 1 ≤ i , j ≤ n ) 存在 ai < i < aj < j 的数目 .
题解:开一个前缀和数组存储 ai < i ,再枚举一下满足 aj < j 的数目
#include
#include
#include
#include
G. Good Key, Bad Key (贪心)
题意:有两种钥匙,一把好钥匙:需要花费 k 个金币,坏钥匙:不需要金币,但会让当前和后面的宝箱金币数量减半 ,可以负债,求获得最大的金币数量
题解:前 x 个全部用好钥匙sum1 = a[ i ] - x * k,(x + 1) ~ n 全部用坏钥匙 sum2 = a[ i ] / 2 。a[ i ] <= 1e9, 最多用坏钥匙32次后宝箱金币全部为0
#include
#include
#include
#include