bzoj 3033 太鼓达人——欧拉图搜索
题目: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 太鼓达人——欧拉图搜索的更多相关文章
- bzoj 3033: 太鼓达人 [欧拉回路]
3033: 太鼓达人 题意:长m的01环,每个长k的子串都是不同的01串.给出k,求最大的M以及字典序最小的方案. \(M=2^k\) 可以把k-1位01串看成点,k位01串就是边,满足欧拉回路的条件 ...
- BZOJ 3033 太鼓达人(DFS+欧拉回路)
Description 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行.这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk.Poet_shy和ly ...
- 【刷题】BZOJ 3033 太鼓达人
Description 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行.这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk.Poet_shy和ly ...
- bzoj3033 太鼓达人——欧拉图搜索
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3033 考虑那 (1<<k) 个数,要形成答案,必然是相邻两个数间有 k-1 个重 ...
- bzoj 3033 太鼓达人
思路:首先一定是2^m次方的总数.用二进制从 000 一直到 111总过m个数,然后暴搜. #include<cstdio> #include<cstring> #includ ...
- 【BZOJ-3033】太鼓达人 欧拉图 + 暴搜
3033: 太鼓达人 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 204 Solved: 154[Submit][Status][Discuss] ...
- [BZOJ3033]太鼓达人|欧拉图
Description 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行.这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk.Poet_shy和ly ...
- BZOJ3033 太鼓达人
3033: 太鼓达人 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 690 Solved: 497[Submit][Status][Discuss] ...
- 【bzoj3033】太鼓达人
3033: 太鼓达人 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 521 Solved: 399[Submit][Status][Discuss] ...
随机推荐
- 用星星画菱形--Java
用星星画菱形 public class Hello{ public static void main(String[] args) { char star = '\u2605'; System.out ...
- Vue项目在Docker的自动化部署
操作系统:CentOS 部署环境:Docker CI/CD工具:Jenkins 1.环境配置 安装Jenkins:Centos安装Jenkins 安装Docker:Centos安装Git.DotNet ...
- 【BZOJ4407】于神之怒加强版
题面 题目分析 \[ \begin{split} \sum\limits_{i=1}^n\sum\limits_{j=1}^mgcd(i,j)^k&=\sum\limits_{d=1}^nd^ ...
- python中遇到的问题:IndentationError: unexpected indent
在Python中写下列代码的时候,出现错误:IndentationError: unexpected indent 分析:IndentationError是缩进的错误,查看源代码发现names开始的这 ...
- 【五校联考5day1】登山
题目 描述 题目大意 给你一个n∗nn*nn∗n的网格图.从(0,0)(0,0)(0,0)开始,每次只可以向右或向上移动一格,并且不能越过对角线(即不能为x<yx<yx<y). 网格 ...
- 18多校8th
a-容斥原理(带限制的不定方程) #include<bits/stdc++.h> using namespace std; #define mod 998244353 #define ll ...
- js 手机号加密 中间星号表示
var tel = String(this.memberMsg.phoneNo); var dh=tel.substr(0,3)+"******"+tel.substr(8); r ...
- redis深入学习(二)-----redis配置文件、持久化
redis配置文件 地址 units单位 a 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bitb 对大小写不敏感 GENERAL通用 1.daemonize 2.pidf ...
- Origin使用自定义函数拟合曲线函数
(2019年2月19日注:这篇文章原先发在自己github那边的博客,时间是2016年10月28日) 最近应该是六叔的物化理论作业要交了吧,很多人问我六叔的作业里面有两道题要怎么进行图像函数的拟合.综 ...
- SpringBoot 04_热部署
热部署应用环境 IDEA2017.2 + MAVEN3.5 + SpringBoot1.5.6 热部署说明 1. devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时 ...