太鼓达人【欧拉回路】【DFS】

太鼓达人 牛客 【欧拉回路,dfs,位运算】 太鼓达人 牛客 【欧拉回路,dfs,位运算】 问题链接 题目描述 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行。这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk、Poet_shy和lydrainbowcat拯救出来的的applepi。看到两人对太鼓达人产生了兴趣,applepi果断闪人,于是cl拿起鼓棒准备挑战。然而即使是在普通难度下,cl的路人本性也充分地暴露了出来。一曲终了,不但没有过关,就连鼓都不灵了。Vani十分过意不去,决定帮助工作人员修鼓 阅读详情

题目大意:

给出一个01串,从不同的位置出发沿顺时针方向找可以得到MM个长度为K的01串。且这MM个01串是互不相同的。给出K的值,请你求出M的值,并给出字典序最小的方案。
InputInput

3

OutputOutput

00010111

思路:

n≤11n≤11,打标了解一下233
但是打到n=6n=6,跑了一个半小时都没跑出来。。。(时间复杂度:O(4n)O(4n))
正解是欧拉回路。
但是我打的和其他大佬打的。。。
这里写图片描述
差距怎么这么大啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!!
前面三页都是1ms1ms的。。。


我跑的十分的慢的原因是我先跑了一个O(2n)O(2n)的全拍列,再O(m2n)O(m2n)求出十进制的数字,最后O(2n)O(2n)求出答案。但是他们直接O(2n)O(2n),遍跑遍建边就过了。。。
这道题求出01串的全排列后,将他们的十进制打出来,再跑一遍,找出欧拉回路,输出答案就可以了。


#include <cstdio>
#include <iostream>
#include <string>
using namespace std;

int n,m,a[3001][3001],num[3001][15],t[3001],mi[15],ans[3001],sum,o;
string head[3001],tail[3001];
bool ok,p[3001];

void dfs1(int x)  //全排列
{
    if (x>n)  //找到一种全排列
    {
        for (int i=1;i<=n;i++)
        {
            num[m][i]=t[i];
            if (i>1) tail[m]+=(char)t[i]+48;
            if (i<n) head[m]+=(char)t[i]+48;
        }
        m++; 
        return;
    }
    for (int i=0;i<=1;i++)
    {
        t[x]=i;
        dfs1(x+1);
        t[x]=0;
    }
    return;
}

int conversion(int x)  //转化为十进制
{
    sum=0;
    for (int i=1;i<=n;i++)
     sum+=mi[i]*num[x][i];
    return sum;
}

void dfs2(int x,int k)  //求欧拉回路
{
    if (k>m&&x==o)  //找到欧拉回路
    {
        ok=true;
        return;
    }
    for (int i=0;i<m;i++)
     if (a[x][i]&&!p[i])  //可以通往这条边
     {
        p[i]=true;
        dfs2(i,k+1);
        if (ok)  //找到欧拉回路
        {
            ans[k]=i&1;  //二进制最后一位
            return;
        }
        p[i]=false;
     }
}

int main()
{
    scanf("%d",&n);
    dfs1(1);  //求全排列
    printf("%d ",m);
    mi[n]=1;
    for (int i=n-1;i>=1;i--)
     mi[i]=mi[i+1]*2;
    for (int i=0;i<m;i++)
     for (int j=0;j<m;j++)
      if (i!=j&&head[j]==tail[i])
      {
         a[conversion(i)][conversion(j)]=1;  //转十进制
      }
    o=m-1;
    dfs2(o,1);
    for (int i=1;i<=m;i++) printf("%d",ans[i]);
    return 0;
}
欧拉回路与哈密尔顿回路【图论中的经典问题及算法实现】 欧拉回路是指在一个图中经过每条边恰好一次,并且回到起点的闭合路径。如果图中存在这样的回路,则称图中存在欧拉回路。对于无向图,存在欧拉回路的充要条件是每个顶点的度数都是偶数,并且图是连通的。对于有向图,存在欧拉回路的条件是每个顶点的入度等于出度,并且图是强连通的。哈密尔顿回路是指在一个图中经过每个顶点恰好一次,并且回到起点的闭合路径。哈密尔顿回路与欧拉回路不同,它要求遍历所有顶点,而不是所有边。对于哈密尔顿回路,存在性的问题比欧拉回路复杂得多,并且没有一个多项式时间的算法可以解决所有情况。 阅读详情

相关推荐

android游戏 太鼓达人源代码

android游戏太鼓达人源代码,各市场内下载量已超过20万。

太鼓达人:欧拉回路(暴搜)

一上来这个专题就死磕了这道题一上午,然后发现 类似二分图?2h 样例都过不去 类似状压?1h 过样例了,WA 0 类似暴搜?10min AC 然而正解是欧拉回路 欧拉回路: 如果图G中的一个路径包括每个边恰好一次,则该路径称为欧拉路径(Euler path)。如果一个回路是欧拉路径,则称为欧拉回路(Euler circuit)。具有欧拉回路的图称为欧拉图 判断条件: ...

weixin_30247781的博客 284

FLASH太鼓达人源码

FLASH太鼓达人源码 很好的效果 基本功能都实现了

我的太鼓达人2

iPhone版的太鼓达人其实还是很不错的,nds上我也比较习惯用触摸屏,而iPhone的分辨率和电容触摸很适合玩太鼓达人。但是不能玩自制曲目还是有些遗憾。   PC上有个仿真度很高的太鼓次郎,而且网友们的自制谱面也很多,所以就想先做一个比较简单的能应用太鼓次郎谱面的程序在iPhone上,资源的话可以直接用iPhone版的。我不是个专业的太鼓达人玩家(事实上我还很菜,街机我只能玩到困难的5星...

amaomiaoww的专栏 457

Android游戏开发之音乐与音效的处理太鼓达人游戏原理

雨松MOMO带你做游戏 Android游戏开发之音乐与音效的处理太鼓达人游戏原理 欢迎大家下载阅读

android太鼓达人apk+音乐包

android太鼓达人apk+音乐包,内含几首音乐

打卡信奥刷题(3523)用C++实现信奥题 P10950 太鼓达人

摘要:题目要求为太鼓达人修复由M个环形传感器组成的鼓面,需找到使得所有连续K位二进制串互不相同的最大M值,并输出字典序最小的排列方案。输入K值后,通过构造德布鲁因序列(De Bruijn sequence)解决,其中M=2^K。例如,当K=3时,输出M=8和序列"00010111"。代码使用深度优先搜索生成序列,适合K≤11的情况。后续将继续分享算法竞赛相关实现。

Loge谈信奥--一个专注于信奥人的博客 300

MATLAB实战:用Costas环和Gardner环搞定QPSK同步问题(附完整代码)

本文详细介绍了如何使用MATLAB实现Costas环和Gardner环联合解决QPSK同步问题,包括载波同步和定时同步的技术原理、MATLAB代码实现及性能分析。通过完整的仿真示例和工程实践建议,帮助读者掌握QPSK同步技术的核心要点,提升数字通信系统的解调性能。

agile9scrum的博客 691

JZOJ 3383. 【NOIP2013模拟】太鼓达人

3383. 【NOIP2013模拟】太鼓达人(Standard IO) Time Limits:1000 msMemory Limits:131072 KBDetailed Limits Goto ProblemSet Description 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行。这时,在前面忽然...

weixin_30613343的博客 157

UDP协议详解——使用Socket通信

UDP(UserDatagramProtocol)是一个简单的面向消息的传输层协议,尽管UDP提供标头和有效负载的完整性验证(通过校验和),但它不保证向上层协议提供消息传递,并且UDP层在发送后不会保留UDP 消息的状态。因此,UDP有时被称为不可靠的数据报协议。如果需要传输可靠性,则必须在用户应用程序中实现。UDP使用具有最小协议机制的简单无连接通信模型。UDP提供数据完整性的校验和,以及用于在数据报的源和目标寻址不同函数的端口号。它没有握手对话,因此将用户的程序暴露在底层网络的任何不可靠的方面。

qq_3517289697的博客 3385

【Flink】FLink session yarn kerberos认证报错 PortUnreachableException: ICMP Port Unreachable

本篇博客是在上一篇博客:【Flink】FLink session yarn kerberos认证报错 KrbException: Cannot locate default realm还没找到原因的时候做的一次尝试。因为项目需要,我们需要对接华为认证的yarn集群,运行flink任务,我们的任务分为两种,yarn pre-job模式和flink session模式。我们在配置文件中配置如下# kerberos认证需要的东西提交任务的脚本如下。

九师兄 1267

欧拉回路的matlab算法,「学习笔记」欧拉回路算法

欧拉回路、欧拉图及其判定在一张图上,一条从某个点出发,经过所有的边后回到原点的路径叫做欧拉回路。有欧拉回路的图叫做欧拉图。容易发现,欧拉图一定是联通图。它还需要满足以下条件:如果是无向图,那么每个结点的度数都是偶数。如果是有向图,那么每个结点的入度和出度相等。不难理解这是判断欧拉图的充要条件。欧拉回路算法详解我们先判断图是否是欧拉图,然后通过 DFS 的方法来找欧拉回路。DFS 一个点的时候,我们...

weixin_32705525的博客 1761

从传统业务到 AI Skill:产品经理也能看懂的能力改造指南(含完整案例)

从传统业务到 AI Skill:产品经理也能看懂的能力改造指南(含完整案例)

专注于编程、AI、人工智能等多个领域内容研究和分析 641

[BZOJ3033]太鼓达人(欧拉图+dfs)

题目描述传送门题解这道题实际上是将k-1位的二进制数看做点,k位的二进制数看成边,并且连接两个点的边就是将这两个点的权怼起来 像这样 然后每个点的入度和出度相等并且全部是偶点,是一个标准的欧拉图,所以只需要在这个图中找字典序最小的欧拉回路就行了 可以贪心地找字典序较小的边,然后实在不行了就回溯 这样的话时间复杂度我不大会…不过实测了一下是接近O(n+m)O(n+m)的吧代码#includ

zyf2000 2623

Sigrity SPEED2000 TDR TDT Simulation模式如何进行时域阻抗仿真分析操作指导-差分信号

Sigrity SPEED2000 TDR TDT Simulation模式如何进行时域阻抗仿真分析操作指导-单端信号详细介绍了单端信号如何进行TDR仿真分析,下面介绍如何对差分信号进行TDR分析,还是以下图为例进行分析。Impedance是时域阻抗曲线,也是最主要的观测指标,注意:impedance曲线的时间刻度不是延时,延时=时间刻度/2,因为TDR测量的是用一来一回的原理去测量的。Use Lossy peeling 默认不勾选,勾选的话代表同时仿真无损和有损方案,不勾选代表仅仿真有损方案。

weixin_54787054的博客 856

PCL点云处理之计算点到空间直线距离的四种方法(二十三)

PCL点云处理之计算点到空间直线距离的四种方法

weixin_44329757的博客 3022

太鼓达人

题目 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行。这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk、Poet_shy和lydrainbowcat拯救出来的的applepi。看到两人对太鼓达人产生了兴趣,applepi果断闪人,于是cl拿起鼓棒准备挑战。然而即使是在普通难度下,cl的路人本性也充分地暴露了出来。一曲终了,不但没有过关,就连...

SSL_Yyx的博客 1263

推荐系统(十六):基于ESMM的商品召回/推荐系统

ESMM(Entire Space Multi-Task Model)是阿里巴巴提出的多任务学习框架,通过联合建模点击率(CTR)和点击转化率(CVR)解决传统CVR模型样本稀疏问题。其核心思想是将 CVR 定义为 CTR 与 CTCVR 的条件概率,模型包含两个子任务。

Jin_Kwok的博客 1265

[BZOJ3033]太鼓达人|欧拉图

Description   七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行。这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk、Poet_shy和lydrainbowcat拯救出来的的applepi。看到两人对太鼓达人产生了兴趣,applepi果断闪人,于是cl拿起鼓棒准备挑战。然而即使是在普通难度下,cl的路人本性也充分地暴...

weixin_30532987的博客 104

第八章 GPU Scheduler 分析:8.3 drm_sched_entity — 调度实体

本文介绍了DRM GPU调度器中的drm_sched_entity结构,它作为用户提交命令进入调度器的提交通道,解决了归属、排序和公平性问题。文章首先分析了命令提交的归属需求,然后详细阐述了entity的核心模型,包括其职责、进程映射关系和核心字段。接着说明了用户态提交进入内核后的关键节点路径,以及entity内部的FIFO语义和激活机制。entity通过组织同一context的命令提交包为FIFO队列,使调度器能够在多个entity之间进行优先级和公平性调度,同时保证同一提交通道的顺序执行。

图形/计算GPU的驱动与虚拟化技术分享园地 650

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

[jzoj 3383] 【NOIP2013模拟】太鼓达人 {欧拉回路+暴力}

题目 Description 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行。这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk、Poet_shy和lydrainbowcat拯救出来的的applepi。看到两人对太鼓达人产生了兴趣,applepi果断闪人,于是cl拿起鼓棒准备挑战。然而即使是在普通难度下,cl的路人本性也充分地暴露了出来。一...

Nowed 623

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

D2欧拉路,拓扑排序,和差分约束

第一题:太鼓达人;BZOJ3033 题意:给出k,求一个最长的M位01串,使其从每一个位置向后走k个得到 的M个k位01串互不相同(最后一个和第一个相邻,即是一个环)。输出 字典序最小的答案。 2 ≤ k ≤ 11。 结论+爆搜; 第二问我们将每个k二进制数看成一个点,在它后面加上0/1就能得 到两个新数,我们从这个数向两个新数连边,于是这就变成了求一个欧 拉回路的问题。显然此题是...

dengcuan6219的博客 269

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【BZOJ3033】太鼓达人 暴力+欧拉回路

【BZOJ3033】太鼓达人 Description   七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行。这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk、Poet_shy和lydrainbowcat拯救出来的的applepi。看到两人对太鼓达人产生了兴趣,applepi果断闪人,于是cl拿起鼓棒准备挑战。然而即使是在普通难...

aodanchui1057的博客 138

BZOJ3033太鼓达人——哈密顿回路/欧拉回路

题目描述   七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行。这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk、Poet_shy和lydrainbowcat拯救出来的的applepi。看到两人对太鼓达人产生了兴趣,applepi果断闪人,于是cl拿起鼓棒准备挑战。然而即使是在普通难度下,cl的路人本性也充分地暴露了出来。一曲终了,不但没...

weixin_30940783的博客 116
上一篇: 七夕祭【模拟】
下一篇: 黑魔法师之门【并查集】
stoorz1023
博客等级 码龄9年 101粉丝 595原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值