【搜索·习题】太鼓达人

news/2024/10/30 9:22:21/

题目描述

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

鼓的主要元件是M个围成一圈的传感器。每个传感器都有开和关两种工作状态,分别用1和0表示。显然,从不同的位置出发沿顺时针方向连续检查K个传感器可以得到M个长度为K的01串。Vani知道这M个01串应该是互不相同的。而且鼓的设计很精密,M会取到可能的最大值。现在Vani已经了解到了K的值,他希望你求出M的值,并给出字典序最小的传感器排布方案。

Solution

根据样例,我们可以得到如下结论:

  • 第一问的答案是 2 k 2^k 2k,因为可以由0~ 2 k − 1 2^k-1 2k1组合而成最终的数列。
  • 一串数列的开头是000…即若干个0.

对于若干个0,很难做到有效的去重,因此我们只需要以第一位为0,根据环形的特点最后往末尾补0即可。

举一个通俗的例子:
00010111这个数字,以0开头,枚举的数是01011100,而这两个数的本质是相同的,因此只需要最后输出的时候处理即可。

接下来的问题就是搜索,如何搜索呢?

  • 如果当前数字已经重复,则不继续往下做
  • 如果长度超过m,则不继续往下做
  • 记录答案
  • 进一步搜索
  • 回溯,撤销答案

注意搜索时,若当前数字为num,下一步数字应为num<<1和num<<1|1,表示在尾部加一个0或1.

但是这些数字要做and运算,防止数字过大造成RE。
#include<bits/stdc++.h>
using namespace std;
int k,m;
int v[10000000];
int ans[10000];
int dfs(int num,int deep)
{if (v[num]==1) return 0;//若当前数被枚举到if (deep==m) return 1;v[num]=1;ans[deep]=num & 1; if (dfs((num<<1)&(m-1),deep+1)) return 1;if (dfs((num<<1|1)&(m-1),deep+1)) return 1;v[num]=0;return 0;
}
int main(void)
{cin>>k;m=1<<k;cout<<m<<' ';dfs(0,1);	for (int i=1;i<k;++i) cout<<0;for (int i=1;i<=m-k+1;++i) cout<<ans[i];return 0;
} 

http://www.ppmy.cn/news/275789.html

相关文章

太鼓达人 搜索

七夕祭上&#xff0c;Vani牵着cl的手&#xff0c;在明亮的灯光和欢乐的气氛中愉快地穿行。这时&#xff0c;在前面忽然出现了一台太鼓达人机台&#xff0c;而在机台前坐着的是刚刚被精英队伍成员XLk、Poet_shy和lydrainbowcat拯救出来的的applepi。看到两人对太鼓达人产生了兴趣…

太鼓达人歌曲导入

从游乐城的太鼓达人那里开始玩上瘾了。看到别人玩的那么好&#xff0c;心里也好痒痒~ itouch上一直都有个太鼓达人&#xff0c;只有三首歌曲&#xff0c;现在都不够我发挥了。 于是从91手机网站上下载了太鼓达人53首歌曲版的。http://mobile.91.com/Soft/iPhone/taiko-no-tat…

太鼓达人

时间限制: 1 Sec 内存限制: 128 MB 题目描述 七夕祭上&#xff0c;Vani牵着cl的手&#xff0c;在明亮的灯光和欢乐的气氛中愉快地穿行。这时&#xff0c;在前面忽然出现了一台太鼓达人机台&#xff0c;而在机台前坐着的是刚刚被精英队伍成员XLk、Poet_shy和lydrainbowcat拯救出…

Threejs,InstancedMesh变换操作

Threejs,InstancedMesh 在项目中加载一个道路的模型树,结果加载出来是水平的 期望是: 仔细分析: 打印模型元素,模型是两个交叉的InstancedMesh ,每个InstancedMesh 里面有566重复的mesh,形成566棵树。那么现在的期望就变成这两个交叉的InstancedMesh 各自旋转下角度 c…

2023年湖北下半年中级职称申报中级职称评审申报条件是什么?

2023年湖北下半年中级职称申报中级职称评审申报条件是什么&#xff1f; 2023年湖北中级职称申报条件&#xff1a;本科毕业5年&#xff0c;专科毕业7年&#xff0c;相关专业 助工满4年这个条件目前不是硬性要求&#xff0c;意思就是有肯定更好&#xff0c;没有也没有太大的影响 …

软考A计划-系统架构师-官方考试指定教程-(5/15)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

[附源码]Nodejs计算机毕业设计校园快递代领系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

毕业设计--校园跑腿小程序

大家好&#xff0c;我是一个快乐的小码主。 这期我想跟大家分享一个非常实用的校园跑腿微信小程序。随着现代生活的加快&#xff0c;时间成了我们最宝贵的财富之一。而校园跑腿小程序就是为我们节约时间提供便利的好工具。 首先&#xff0c;这个小程序非常易懂易用。我们可以…