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

思路:肯定是把2^m个数当成点,每个点连了2条入边、2条出边,然后求一个经过所有点一次的路径。

   但是这怎么做?又不是欧拉路的定义。

   肯定是把点变成边,于是一条边会连4条边,就用点把它们粘起来就能求个欧拉路了。

   然后觉得这不是个欧拉图吧? >o-o< 了以后,把右边的两条边转一转连一连,好像得出每个点连5条边的结论?(3条边)

   怎么办?TJ:https://blog.csdn.net/Clove_unique/article/details/70160122

原来是这样啊。分析一下点和边的含义,以点为中心分析它的度数。得出:这就是个欧拉图。

然后怎么求欧拉路?

竟然是暴搜。

有一些细节。比如dfs什么时候到终点之类的。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=(<<)+,M=(<<)+;
int m,lm,mod;
bool vis[M],flag,ans[M];
void dfs(int nw,int k)//在第k位
{
if(k==m+lm){flag=;return;}
if(k<=lm)
for(int i=;i<=;i++)
{
int s=((nw<<)|i);
if(vis[s])continue; ans[k]=i;
vis[s]=; dfs(s&mod,k+);
if(flag)return; vis[s]=;
}
else{
int s=((nw<<)|ans[k-lm]);
if(vis[s])return;vis[s]=;
dfs(s&mod,k+);
if(flag)return; vis[s]=;
}
}
int main()
{
scanf("%d",&m);mod=(<<(m-));lm=(mod<<);mod--;
printf("%d ",lm);
for(int s=;s<lm;s++)
{
dfs(s,m);if(flag)break;
}
for(int i=;i<=lm;i++)printf("%d",ans[i]);
return ;
}

bzoj 3033 太鼓达人——欧拉图搜索的更多相关文章

  1. bzoj 3033: 太鼓达人 [欧拉回路]

    3033: 太鼓达人 题意:长m的01环,每个长k的子串都是不同的01串.给出k,求最大的M以及字典序最小的方案. \(M=2^k\) 可以把k-1位01串看成点,k位01串就是边,满足欧拉回路的条件 ...

  2. BZOJ 3033 太鼓达人(DFS+欧拉回路)

    Description 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行.这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk.Poet_shy和ly ...

  3. 【刷题】BZOJ 3033 太鼓达人

    Description 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行.这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk.Poet_shy和ly ...

  4. bzoj3033 太鼓达人——欧拉图搜索

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3033 考虑那 (1<<k) 个数,要形成答案,必然是相邻两个数间有 k-1 个重 ...

  5. bzoj 3033 太鼓达人

    思路:首先一定是2^m次方的总数.用二进制从 000 一直到 111总过m个数,然后暴搜. #include<cstdio> #include<cstring> #includ ...

  6. 【BZOJ-3033】太鼓达人 欧拉图 + 暴搜

    3033: 太鼓达人 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 204  Solved: 154[Submit][Status][Discuss] ...

  7. [BZOJ3033]太鼓达人|欧拉图

    Description 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行.这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk.Poet_shy和ly ...

  8. BZOJ3033 太鼓达人

    3033: 太鼓达人 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 690  Solved: 497[Submit][Status][Discuss] ...

  9. 【bzoj3033】太鼓达人

    3033: 太鼓达人 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 521  Solved: 399[Submit][Status][Discuss] ...

随机推荐

  1. vue 计算属性实现过滤关键词

    效果 html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <m ...

  2. 执行sql查询,并查看语句执行花费时间

    declare @d datetimeset @d=getdate() select * from A PRINT '[语句执行花费时间(毫秒)]'+LTRIM(datediff(ms,@d,getd ...

  3. (转)linux centos 编译luabind-0.9.1 动态库 静态库

    编译时:virtual memory exhausted: Cannot allocate memory 一.问题 当安装虚拟机时系统时没有设置swap大小或设置内存太小,编译程序会出现virtual ...

  4. java char <-> int

    int = char - '0' or Character.getNumericValue(char ch) char = (char)int

  5. MSSQLSERVER跨服务器连接(远程登录)的示例代码

    MSSQLSERVER跨服务器链接服务器创建方法如下 复制代码 代码如下: --声明变量 Declare @svrname varchar(255), @dbname varchar(255), @s ...

  6. thinkphp 统计查询

    在应用中我们经常会用到一些统计数据,例如当前所有(或者满足某些条件)的用户数.所有用户的最大积分.用户的平均成绩等等,ThinkPHP为这些统计操作提供了一系列的内置方法,包括: 大理石平台检定规程 ...

  7. Joomla - K2组件(文章管理扩展)

    一.下载 K2 进入 https://getk2.org/ ,点击DOWNLOAD K2 下载K2 下载完毕得到一个安装包 二.安装 K2 进入看后台,点击顶栏主菜单 扩展管理 -> 扩展安装 ...

  8. pyqt点击右上角关闭界面但是子线程仍在运行

    现象: 通过右上角的叉关闭图形界面后,程序运行的子线程却不会被自动关闭,依然留存在系统中原因: 子线程没有正确关闭解决方法: 1.将子线程设置成守护线程 self.your_thread = thre ...

  9. 【bzoj 4671】 异或图

    题目 神仙题啊神仙题 显然这个东西一脸不可求的样子啊,这种东西我们显然需要搞一个容斥什么的 于是设\(g_i\)表示至少存在\(i\)个联通块(联通块内部的边没有要求,联通块和联通块之间不存在边)的方 ...

  10. 让html里的js脚本延迟5秒运行

    setTimeout( function(){ //add your code}, 5 * 1000 );//延迟5000毫米