说有一个01串,去掉前导0和结尾0,那么现在有一头一尾两个1对不对……
如果一个1,它处于开头或者结尾,且不与1相邻,那么就称之为ufo……
10001010有两个ufo……10000000000011000000有一个ufo……10000001000000有两个ufo……00000100000000000只有一个ufo
sks(n) = 1..n这n个数的二进制表示中ufo的总个数。
sks(5) = 5, sks(256) = 249
现在REP(n)表示把相同的叠在一起……啥意思呢……就是
REP(111111000001100) = {6, 5, 2, 2}
代表一开始有6个1,5个0,2个1,2个0。
现在给你REP(n),要你求REP(sks(n))。
|REP(n)| <= 10^6, n <= 2 ^ (10 ^ 9)