这是本文档旧的修订版!
题意:给一个数$x$,可以对它进行6钟操作,乘2,乘4,乘8,除2,除4,除8,问至少要多少次操作才能把$x$变成$a$?
题解:如果能通过以上6种操作互相得到,那么二进制的表达从开头到末尾必定只有0的个数不同,然后算出0的个数差,除3(每次消去或增加3位一定是最优的)向上取整即可。
题意:给$n$个数,问最小的数$k$,使得,这n个数中每个数分别与$k$取异或后得到的数组成的集合满足和原来的集合完全相同。
题解:妙就妙在数据范围上,小于1000的数据范围直接枚举+暴力即可。
题意:给一个数n,从0开始,每次对数加1,假设加完后数为$x$,将$x$和$x-1$化为2进制,并从低位开始比较,不足补0,遇到不同的位,则将答案加1,问加到n时,这个答案能有多少,对$10^9+7$取模。
题解:找规律,列举几十个后会发现,当$n$为2的$i$次幂时,答案便是$2^i-1$,不难发现,一个数$n$可以写成若干2的次幂的和,则大难即为对应的2的次幂情况的和(因为从低位加到高位时,高位的数字不会变化,理解不了可以直接写几个找规律),然后便可以$O(nlogn)$求得答案。
题意:有一张图,要对其进行染色,染色的规则如下: