BZOJ3033 太鼓达人(dfs暴搜)
时间:2022-11-12 08:30:00
题目
鼓的主要部件是M周围的传感器。每个传感器有两种工作状态:开关,分别用1和0表示。
显然,沿顺时针方向连续检查K个传感器,从不同位置可以得到M个长度为K的01串。
Vani知道这个M个01串应该是不一样的。而且鼓的设计非常精确,M可能的最大值。
现在Vani已经知道了K(2<=K<=11)值,他希望你能找到M值,并给出字典序最小的传感器排列方案。
你输出的第一个字和最后一个字相邻。
例如,输入3,输出8 0010111,8个01串,分别是000、001、010、101、011、110和100
思路来源
http://hzwer.com/4136.html
题解
枚举后面填0还是填1,移位暴搜,到mx层时说明无重复,
而且由于每个值只能从两个值转移到两个值,所以出入度相等,是偶数,
说明这是欧拉图,对欧拉图来说,从任何一点出发,都有解,是一个环
从0开始的答案一定是最小的,先搜0再搜1字典序一定是最小的,
简洁的代码令人惊叹啊ORZ
代码
#include #include #include using namespace std; const int N=13; int n,mx,ans[1<