A:SSeeeeiinngg DDoouubbllee
题意:给定一个字符串,每个字符串的字符可以出现两次,要求通过重新排列构造一个回文串。
思路:直接暴力可以,每个字符头部一个尾部一个。
#include
#include
#include
#include
#include
#include
#include
#include
#include
B:XOR = Average
题意:让你构造一个长度为 n 的数组,使得数组的平均值等于数组的异或和。
思路:由奇数得可以全部都为相同的数,如果是偶数,那么可以数组的平均数都是2,然后第一个2-1放到最后一个2的位置,这样中间的xor都是0,最后的异或的结果也是2,
#include
#include
#include
#include
#include
#include
#include
#include
#include
C: Almost All Multiples
题意:给你一个x和n,让你构造一个长度为n的数组并且第一个数是x最后一个是1并且数组的每一位要保证能够取余i。并且构造这个字典序最小的数组,如果没有就输出-1.
思路:首先如果
,那么在除了x和1之外的每个元素都不能让位置给n,那么一定就构造不了。
否则可以构造一个数组,就是x和n的位置互换的情况,然后要考虑最小的字典序的情况,即n的位置尽可能的跟后面的数字交换(要换的数能整除当前n的下标并且n能整除要换的数的下标),直接暴力搜一遍就可以了。
#include
#include
#include
#include
#include
#include
#include
#include
#include
D题自己写出来了但是思路不好说,因为我自己是打表找出来的规律(欸嘿~),感觉这次的构造题都挺考验打表的,以后还是继续努力吧!