太鼓达人

这道题目其实是样例给我的启示。。我看到\(3\)的结果是\(8\),就猜想可以把所有的长度为\(k\)\(01\)串都加进来

所以我们先写出所有\(01\)串,那么再看一下样例,会发现第一个串是\(000\),于是乎猜想起点都是全\(0\)

那么全\(0\)串的下面一个可以接什么呢?显然可以接\(00\)...\(01\)

那再下面可以接什么呢?就是去掉第一个\(0\),然后在末尾加上\(0\)\(1\)

到了这里就比较明显了,你会发现可以建图了

然而如果直接将每个字符串当成节点建图的话,是求哈密顿环,是NP-hard的

然而不重不漏,我们还想到什么?欧拉图

所以我们把每个\(01\)串当成边,那么点是什么?由我们以上的分析,不难发现点是边去掉一端形成的\(01\)

其实边也可以为\(0\)\(1\),表示在当前点所表示的序列后面加上一个二进制位

不难分析得到这个图是存在欧拉回路的

posted @ 2024-02-10 18:05  最爱丁珰  阅读(1)  评论(0编辑  收藏  举报