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] ...
随机推荐
- Foundation框架系列-NSArray
NSArray常用API 数组字符串指定字符拼接 // 将数组中的元素以separator拼接返回字符串 比如@[@"a=1", @"b=2"] 以separa ...
- Java工具类NumberUtils使用
int数据类型和long数据类型 int占32位,long占64位,long表示的数据更大:public static int toInt(String str) NumberUtils.toInt( ...
- struts2文件上传,文件类型 allowedTypes对应
'.a' : 'application/octet-stream', 2 '.ai' : 'application/postscript', 3 '.aif' : 'audio/x-aiff', 4 ...
- Educational Codeforces Round49
A Palindromic Twist(字符串) 问每个字母必须向左或向右变成另一个字母,问能不能构成回文 #include <iostream> #include <string. ...
- Python+Selenium基础入门及实践
Python+Selenium基础入门及实践 32018.08.29 11:21:52字数 3220阅读 23422 一.Selenium+Python环境搭建及配置 1.1 selenium 介绍 ...
- Error:Execution failed for task ':app:validateSigningDebug'.
今天出差回来 第一天 把项目重新移植到新的电脑上 一运行 给我报错了 ! 这个是签名的路径错误 我们需要重新导一下路径就可以了 点击左上角 File -> project structu ...
- JAVA 垃圾回收读书笔记
对象已死 在JAVA代码运行中,会不停的创建对象,因为内存空间不是无限的,Java虚拟机必须不停的回收无用的数据空间.那么虚拟机是怎么判断对象空间是需要被回收的呢,也就是怎么样的数据算是垃圾数据呢? ...
- AtCoder F - Exhausted?
传送门 sxy题解: //Achen #include<algorithm> #include<iostream> #include<cstring> #inclu ...
- js 移动端点击复制字符串
function copyStr(val) { //val 是要复制的字符串 var input = document.createElement("input"); input. ...
- JavaScrip中的循环语句
循环语句 循环语句,也是流程控制语句中不可或缺的一种结构.在 JavaScrip中实现循环的方式有好几个一个来看 1.为什么需要循环 在具体介绍 Javascript中的循环之前,首先我们来明确一个问 ...