Problem
太鼓达人
Description
七夕祭上,牵着的手,在明亮的灯光和欢乐的气氛中愉快地穿行。这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员、_和拯救出来的的。看到两人对太鼓达人产生了兴趣,果断闪人,于是拿起鼓棒准备挑战。然而即使是在普通难度下,的路人本性也充分地暴露了出来。一曲终了,不但没有过关,就连鼓都不灵了。十分过意不去,决定帮助工作人员修鼓。
鼓的主要元件是个围成一圈的传感器。每个传感器都有开和关两种工作状态,分别用和表示。显然,从不同的位置出发沿顺时针方向连续检查个传感器可以得到个长度为的串。知道这个串应该是互不相同的。而且鼓的设计很精密,会取到可能的最大值。现在已经了解到了K的值,他希望你求出的值,并给出字典序最小的传感器排布方案。
Input
一个整数。
Output
一个整数和一个二进制串,由一个空格分隔。表示可能的最大的以及字典序最小的排布方案,字符表示关,表示开。你输出的串的第一个字和最后一个字是相邻的。
Sample Input
1 | 3 |
Sample Output
1 | 8 00010111 |
Hint
得到的个串分别是、、、、、、和。注意前后是相邻的。长度为的二进制串总共只有种,所以一定是可能的最大值。
对于全部测试点,。
Source
Poetize2
标签:欧拉回路
Solution
将位二进制数看成点,位二进制数看成边,连接两点的边权就是。
例如时,边的权为,整个图如下:
(转载自 Clove_unique 的博客)
显然每个点的出度和入度均为,一定存在欧拉回路,而欧拉回路一定会经过所有的边,即凑出所有位二进制数。于是第一问答案为,第二问在图上找出字典序最小的欧拉回路即可。
Code
1 |
|