My Codeforces ID : WuZei
A Neko Finds Grapes
题意:给出a,b两个数列,a,b数列各选出一个数字,若这两个数字一奇一偶,则互相抵消,答案+1,求最大的答案。
题解:分别统计两个数列奇数和偶数的个数即可。
B Neko Performs Cat Furrier Transform
题意:给出一个数字x,可以对这个数字进行两种操作。
操作一:
操作二:
第一次操作必须为操作一,两种操作必须交替进行。
操作一中的n自选,求一种不多于40次的方案,使得x可以表示为
题解:每次异或操作都把位数拉满,比如5xor7,因为,这样操作可以保证每一次都能在二进制上减少一位,最后至少会变成1,当然每次操作玩都得判断一下,我的1WA就是因为4异或后马上+1,结果死循环...
C Neko does Maths
题意:给出两个数字a,b,求使得最小的k,当k多解时,输出最小的k。
题解:a==b时,k=0。否则,令c为两个数字的差值。最后a,b一定是都变成某个数字的倍数,即(a+k)%x==(a+k)%x==c。
那么问题来了,怎么确定这个x,我猜出的结论是:当c<a时,x=c,否则x为c的所有约数中,最小但是大于a的那个。
D Neko and Aki's Prank
题意:给出一个构造长度为n的括号数列的字典树(看题面的Note很直观),选择树上最多的边,使得边之间不共点。
题解:其实可以按照题意建树,每个树节点都表示一个已经用了i个'('和j个‘)’的序列,然后做树形DP。最后可以发现其实很多节点本质上是一样的,直接记忆化地转移就完事了。
E Neko and Flashback
题意:有一个数列ai,从数列ai中可提取数列和数列
,可以按照相同的方法打乱bi和ci两个数列,得到bi‘和ci'。
现在给出bi'和ci',要求你选择任意一种还原方法,还原出最初的ai,输出任意一种合法的ai解即可。
题解:不难发现,相邻的两个数字ai,ai+1,都对应着一对bi和ci,折就意味着,每一堆bi和ci,都表示两个相邻的数字,按照这个方法建图,跑个欧拉路即可。
这题有几个要注意的点,首先bi<=ci,题面并不保证bi'和ci'两个数组合法。其次最后连出来的图不一定联通,要判定连通性。之后就是标准的判断是否有欧拉路和求欧拉路了,目测正反两种欧拉路都是符合题意的。