第一问,1<<k,谁都看得出来。

毫无思路,暴搜,枚举每一个数列,Hash加map判断是否重复,拿到30,打表都打不出来。

#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include <map>
using namespace std;
const int p = ;
int k, n, num;
int a[], b[];
unsigned long long op[], base[];
map<unsigned long long, bool> mp;
bool check() {
mp.clear();
memset(op, , sizeof(op));
for (int i = ; i <= n; i++) op[i] = op[i - ] * p + a[i];
for (int i = k; i <= n; i++) {
unsigned long long h = op[i] - base[k] * op[i - k];
if (mp[h])
return ;
mp[h] = ;
}
return ;
}
void dfs(int now) {
if (now == n + ) {
// for(int i=1;i<=n;i++)
// cout<<a[i];cout<<endl;
if (check()) {
for (int i = ; i < n; i++) cout << a[i];
cout<<;
exit();
}
return;
}
dfs(now + );
a[now] = ;
dfs(now + );
a[now] = ;
}
int main() {
scanf("%d", &k);
base[] = ;
for (int i = ; i <= ; i++) base[i] = base[i - ] * p;
n = << k;
printf("%d ", n);
// cout<<n<<endl;
// fgetc(stdin);
dfs();
return ;
}

这搜索简直了。

其实有一些大模拟的意思。

dfs两个参量,x表示一个二进制数,也就是数出来长度为k的这个数,l表示当前填好了第几位。然后就是递归,标记某个数是否被填过,被填过直接return,没标记过先填上,把第l位填上x的末尾,然后将x的后k-1位填上一个1或0作为下一层的x递归搜索,最后输出ans数组即可。

当时听到这个东西,激动地抱了Soul三次,真是天才的打法,搜索竟然可以用到如此境地。

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<vector>
#include<queue>
#include<stack>
#include<set>
#include<map>
using namespace std;
int n,k;
int ans[];
bool vis[];
bool dfs(int x,int l){
if(vis[x]) return ;
if(l==n+) return ;
ans[l]=x&;vis[x]=;
if(dfs(((x<<)&((<<k)-)),l+)) return ;
if(dfs(((x<<|)&((<<k)-)),l+)) return ;
vis[x]=;
return ;
}
int main(){
scanf("%d",&k);
n=<<k;
dfs(,k);
printf("%d ",n);
for(int i=;i<n;i++)
printf("%d",ans[i]);
putchar('');
return ;
}

BZOJ3033太鼓达人的更多相关文章

  1. bzoj3033: 太鼓达人 欧拉路径

    题目链接 bzoj3033: 太鼓达人 题解 对于k-1位点,k位二进制位边,将点的转移连起来 每个点的入度和出度相等并且全部是偶点 只需要在这个图中找字典序最小的欧拉回路 可以贪心地找字典序较小的边 ...

  2. BZOJ3033 太鼓达人题解

    太鼓达人 时间限制: 1 Sec  内存限制: 128 MB 题目描述 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行.这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是 ...

  3. [BZOJ3033]太鼓达人|欧拉图

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

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

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

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

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

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

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

  7. BZOJ3033 太鼓达人

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

  8. [BZOJ3033]:太鼓达人(爆搜)

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

  9. [bzoj3033]太鼓达人 题解(搜索)

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

  10. bzoj3033 太鼓达人——欧拉图搜索

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3033 考虑那 (1<<k) 个数,要形成答案,必然是相邻两个数间有 k-1 个重 ...

随机推荐

  1. O050、Create Volume 操作 (Part I)

    参考https://www.cnblogs.com/CloudMan6/p/5603312.html   前面已经学习了Cinder的架构和相关组件,从本节开始详细分析 Cinder 的各种操作,首先 ...

  2. 高性能SQLServer分页语句

    第一种方法:效率最高 SELECT TOP 页大小 * FROM( SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1  ...

  3. aipai服务架构

    概述 业务服务器30+ 1.根据业务不同,有四个主入口,负责负载均衡. 2.主要是业务分离,防止宕机影响所有业务. 3.nginx反向代理,保证每个业务至少有两个服务. redis集群12台 主要使用 ...

  4. python 2.7.5 获取文本关键字符所在行

    #!/usr/bin/env python #-*- coding: UTF- -*- from __future__ import print_function import time,os,sys ...

  5. 基于partition的递归

    partition算法可以应用在快速排序算法中,也可以应用到 Selection algorithm(在无序数组中寻找第K大的值) Partition 实现 快速排序中用到的 partition 算法 ...

  6. debian docker环境搭建

    环境(阿里): 登陆到系统: 我们主要看执行结果截图(所有命令都进行复制) 卸载旧版本: 使用 APT 安装: 这里 输入 y  然后等待执行结束 添加软件源的 GPG 密钥. 一开始我是手打的命令, ...

  7. 【转载】MCMC和Gibbs Sampling算法

    转载随笔,原贴地址:MCMC和Gibbs Sampling算法 本文是整理网上的几篇博客和论文所得出来的,所有的原文连接都在文末. 在科学研究中,如何生成服从某个概率分布的样本是一个重要的问题.如果样 ...

  8. docker安装kafka快速入门

    docker安装kafka快速入门 1.安装zookeeper docker search zookeeperdocker pull zookeeperdocker run -d -v /home/s ...

  9. BZOJ 1008 组合数学

    监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱 总的情况为mn不越狱的情况为 ...

  10. python学习笔记-(十三)线程、进程、多线程&多进程

    为了方便大家理解下面的知识,可以先看一篇文章:http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html 线程 1.什么是线程? ...