题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3033

考虑那 (1<<k) 个数,要形成答案,必然是相邻两个数间有 k-1 个重叠位置,也就是两个有 k-1 位前后对应相同的数之间可以连边转移;

发现这张图里每个点一定有两个入度、两个出度,也就是形成一张欧拉图;

所以暴搜时间有保证,暴搜即可;

对欧拉图还是太不熟悉了...暴搜也写不出来了...有种无力感...

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int const maxn=(<<)+;//+5!!!
int k,m,ans[maxn],num,top,lst[maxn];
bool fl,vis[maxn];
void find(int y,int x)
{
num=;
while(y!=x)ans[++num]=y,y=lst[y];
ans[++num]=x;
}
void dfs(int x)
{
vis[x]=; top++;
if(top==(<<k)){find(x,); fl=; return;}
for(int i=;i<=&&!fl;i++)
{
int y=((x&((<<(k-))-))<<|i);
if(vis[y])continue;
lst[y]=x; dfs(y);
}
vis[x]=; top--;
}
int main()
{
scanf("%d",&k);
// m=(1<<k);//比下面慢
// printf("%d ",m);
dfs();
printf("%d ",num);
for(int i=num;i;i--)printf("%d",(ans[i]>>(k-)));
return ;
}

最新文章

  1. XMLHTTPRequest对象的创建与浏览器的兼容问题
  2. Ant打包
  3. PHP中include和require的区别详解
  4. android向web提交参数的4种方式总结,附带网站案例源码
  5. TeeChart的X轴,使用伪装的时间
  6. Error Code: 1175
  7. popen()函数详解
  8. java虚拟机 jvm 方法区实战
  9. js坚持不懈之13:JavaScript查找HTML元素的方法
  10. django项目环境搭建
  11. PTA——字符串逆序
  12. python 计算机发展史,线程Process使用 for循环创建 2种传参方式 jion方法 __main__的解释
  13. 右击菜单一键优化(增加新建office2003、新建reg和bat,删除新建公文包、新建wps、新建rar)
  14. ASP.NET Core 3.0 实战:构建多版本 API 接口
  15. 华为云对Kubernetes在Serverless Container产品落地中的实践经验
  16. MVC+WCF框架下广告位管理——文件上传
  17. OC 设计模式
  18. IO习题
  19. Java精选笔记_IO流【File(文件)类、遍历目录下的文件、删除文件及目录】
  20. Direct ByteBuffer学习

热门文章

  1. CSS——个人资料demo
  2. Oracle基础理论笔记(一):模式概念
  3. 15、Scala隐式转换和隐式参数
  4. day03-执行python方式、变量及数据类型简介
  5. TP调用JS
  6. 04 学习java养成良好的写作习惯
  7. php第十五节课
  8. 【第8篇】:Python之面向对象
  9. Spring MVC 笔记2 HelloWorld
  10. 初学者对ASCII编码、Unicode编码、UTF-8编码的理解