Codeforces Round #751 (Div. 2)
A. Two Subsequences
找一个字典序最小的字母并输出,再输出去掉第一个最小字母的原字符串即可,代码略。
B. Divine Array
给我们一个数组,不停变换,将数字变换为其在数组中出现的次数,题问第k次变换后第x位的数是什么。
简单枚举可知,数组会经过一定次数的变换后稳定,不会再改变,直接存储输出即可。
#include
#include
#include
#include
#include
#include
#include
#include
#include
C. Array Elimination
给我们一个数组,让我们随意选其中k个数,使这k个数减去他们的异或和,最后使得数组元素都变为0,找出这些数k。
考虑拆分每个数的每一位,只需要每一位上1的个数都能被数k整除即可。
#include
#include
#include
#include
#include
#include
#include
#include
#include
D. Frog Traveler
一只青蛙在井底,在距离地面x米的地方可以往上跳[0,a[x]]米,设跳完之后离地面有y米,在下一次起跳之前会掉落b[y]米,问我们跳的最少次数以及路径。
直接bfs即可。
#include
#include
#include
#include
#include
#include
#include
#include
#include
E. Optimal Insertion
给一个长度为n的数组a和长度为m的数组b,让我们把数组b插入到a中,并且使得所产生的新的数组的逆序对个数最少。
如果要使得所产生的逆序对个数最少,那么b必定是在自身排序后再有序插入到a中,(小的在前面,大的在后面)防止与原数组自身产生新的逆序对。
这样只需要分治找到b中每一个数需要插入的位置即可,造出新数组之后用树状数组(或者归并排序)求逆序对即可。
#include
#include
#include
#include
#include
#include
#include
#include
#include
By 泽浩巨巨