loj#P2458. 「POI2010」01 序列计数 Ones
「POI2010」01 序列计数 Ones
题目描述
译自 POI 2010 Stage 3. Day 2「Ones」
设 是一个由 01 组成的序列。一个 UFO 指的是序列中第一个 1 或者最后一个 1 且不和任何一个 1 相邻。例如 10001010 有两个 UFO,1101011000 没有 UFO,1000 只有一个 UFO。
设 到 的数的二进制表示中 UFO 的总数为 。例如,$sks(5) = 5, sks(64) = 59, sks(128) = 122, sks(256) = 249$。
我们需要处理非常大的数字。因此 会用压缩的形式表示。设 是一个正整数, 是其二进制表示(最高位为 1),则该数的压缩形式 为一个序列,表示连续相同数位的数量。例如:
$$REP(460288) = REP(1110000011000000000_2) = (3,5,2,9) $$已知 ,求 。
输入格式
第一行有一个整数 ,表示一个正整数 的压缩形式。 接下来一行有 个整数 ,用空格分隔,表示 的压缩形式序列。保证 ,也就是说 。
输出格式
输出两行,第一行有一个正整数 ,第二行有 个正整数 ,用空格分隔,表示 的压缩形式。
6
1 1 1 1 1 1
5
1 1 2 1 1
数据范围与提示
对于 的数据, 。
Translated by vincent163