题目

背景

七夕祭上,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 的值,并给出字典序最小的传感器排布方案。

输入格式

一个整数K。

输出格式

一个整数 M 和一个二进制串,由一个空格分隔。表示可能的最大的 M,以及字典序最小的排布方案,字符 0 表示关,1 表示开。你输出的串的第一个字和最后一个字是相邻的。

样例输入输出

样例输入

3

样例输出

8 00010111

样例说明

得到的 8 个 01 串分别是 000、001、010、101、011、111、110 和 100。注意前后是相邻的。长度为 3 的二进制串总共只有 8 种,所以 M = 8 一定是可能的最大值。

数据范围及约定

对于全部测试点,2≤K≤11。

思路

做模拟赛的时候遇到一道自己以前做过的题orz。看到数据范围想到打表(

基本就是个暴力……因为k很小,所以可以开一个vis数组来记录当前01串有没有出现过。然后大力DFS就可以了。

代码

#include <iostream>
#include <cstdio> using namespace std; int k, n;
int ans[];
bool vis[]; bool dfs(int S, int x) {
if(vis[S])
return false;
vis[S] = true;
ans[x] = S & ;
if(x == n)
return true;
if(dfs(S << & (n - ), x + ))
return true;
if(dfs((S << | ) & (n - ), x + ))
return true;
vis[S] = false;
return false;
} int main() {
freopen("taiko.in", "r", stdin);
freopen("taiko.out", "w", stdout); scanf("%d", &k);
n = << k;
dfs(n - , );
printf("%d ", n);
for(int i = ; i <= n; ++i)
printf("%d", ans[i]);
printf("\n"); fclose(stdin);
fclose(stdout); return ;
}

2018.11.3 Nescafe18 T2 太鼓达人的更多相关文章

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

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

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

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

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

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

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

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

  5. BZOJ3033: 太鼓达人(欧拉回路)

    Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 524  Solved: 400[Submit][Status][Discuss] Description ...

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

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

  7. BZOJ3033:太鼓达人(DFS,欧拉图)

    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. JZOJ 3383. 【NOIP2013模拟】太鼓达人

    3383. [NOIP2013模拟]太鼓达人 (Standard IO) Time Limits: 1000 ms  Memory Limits: 131072 KB  Detailed Limits ...

随机推荐

  1. mybatis深入理解(一)之 # 与 $ 区别以及 sql 预编译

    mybatis 中使用 sqlMap 进行 sql 查询时,经常需要动态传递参数,例如我们需要根据用户的姓名来筛选用户时,sql 如下: select * from user where name = ...

  2. 【ACM】孪生素数问题

    孪生素数问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 写一个程序,找出给出素数范围内的所有孪生素数的组数.一般来说,孪生素数就是指两个素数距离为2,近的不能再 ...

  3. 一个简单的类似Vue的双向绑定

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. xenserver 更新源

    在xenserver上安装vnc软件时,报错 [root@cloud yum-3.4.3]# ./yummain.py install yumThere are no enabled repos.Ru ...

  5. Elasticsearch在后台启动

    Elasticsearch在linux下使用命令sh elasticsearch start,按键ctrl+c的时候程序就会stop掉,如何将程序在后台启动呢? 需要使用:./elasticsearc ...

  6. orcale开篇

    1.数据库系统和数据库的管理系统  数据库系统=数据库的管理系统+oper操作员+硬件2.Oracle的版本  8i/ 9i 10g/11g  12c(cloud)3.实例和数据库的关系  实例:数据 ...

  7. javascript 获取dom书的下一个节点。

    利用javascript 写一个在页面点击加减按钮实现数字的累加.. 简略的html大概如此.看得懂就好不要在意这些细节啊 <input type="button" valu ...

  8. AGC015 C Nuske vs Phantom Thnook(前缀和)

    题意 题目链接 给出一张$n \times m$的网格,其中$1$为蓝点,$2$为白点. $Q$次询问,每次询问一个子矩阵内蓝点形成的联通块的数量 保证任意联通块内的任意蓝点之间均只有一条路径可达 S ...

  9. javascript浮点值运算舍入误差

    问题 在javascript中整数和浮点数都属于Number数据类型(简单数据类型中的一种),我们经常会发现在打印1.0这样的浮点数的结果是1而非1.0,这是由于保存浮点数的内存空间是保存整数值的两倍 ...

  10. JNI教程

    一.什么是JNI JNI(Java Native Interface ),它是Java SDK的一部分,主要用于实现Java对其他语言编写的代码和库的调用,比如C和C++.JNI提供的API也能让JV ...