大型补档计划

题目链接

神仙题。考虑转为图论模型。

若以 \(2 ^ k\) 个点,相互转化,很容易看出要求一个哈密尔顿环,显然对于 \(1000\) 规模的数据求不出来。

对于图论中环的算法,并且能满足数据规模的算法只有欧拉回路了,考虑点边换一下。

若以 \(2 ^{k - 1}\) 为点,可以相互平移一个距离转换的连一条边,显然有 \(2 ^ k\) 个互不相同的边,而且符合欧拉图的性质(每个点都有两个入度、两个出度),这样跑欧拉回路算法就行了。

#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
const int N = 1 << 10, M = (1 << 11) + 5;
int K, ans[N], s[M], tot, S1, S2, id[M];
int head[N], numE = 0;
struct E{
int next, v, w;
} e[M];
void add(int u, int v, int w) {
e[++numE] = (E) { head[u], v, w };
head[u] = numE;
}
void euler() {
int top = 0; s[++top] = 0;
while (top) {
if (id[top] != -1) {
ans[++tot] = id[top];
id[top] = -1;
}
int u = s[top], i = head[u];
if (i) {
id[top] = e[i].w;
s[++top] = e[i].v;
head[u] = e[i].next;
} else top--;
}
for (int i = 1; i <= K - 1; i++) putchar('0');
for (int i = tot; i > K - 1; i--) printf("%d", ans[i]);
}
int main() {
memset(id, -1, sizeof id);
scanf("%d", &K);
S1 = (1 << (K - 1)) - 1, S2 = (1 << K) - 1;
printf("%d ", 1 << K);
for (int i = 0; i <= S1; i++) {
add(i, (i << 1 | 1) & S1, 1);
add(i, (i << 1) & S1, 0);
}
euler();
return 0;
}

AcWing 400. 太鼓达人的更多相关文章

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

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

  2. Silverlight 手鼓达人-仿太鼓达人 开源

    Silverlight 手鼓达人-仿太鼓达人 介绍  手鼓达人是本人2012年中silverlight最火的一段时间开发的,本来目的只是想研究一下silverlight做游戏和做应用有何不同,但是后面 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. centos 新装的常见问题

    1.没有1080分辨率 vi /etc/X11/xorg.conf Section "Monitor" Identifier "Monitor0" Vendor ...

  2. linux全局和个人配置文件说明

    1.bash配置文件: 1).全局(bash的配置文件) 有 /etc/profile   /etc/profile.d/*  与 /etc/bashrc 其实都是bash这个程序启动的时候会读取配置 ...

  3. 02 Filter过滤器

    Filter 一.Filter过滤器 Filter过滤器它是JavaWeb的三大组件之一.三大组件分别是:Servlet程序.Listener监听器.Filter过滤器 Filter过滤器是JavaE ...

  4. SQL SERVER数据库Left Join用法

    Left Join基本语法: SQL LEFT JOIN 关键字 LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的 ...

  5. 实验吧[WEB]——程序逻辑问题

    拿到题 通过查看网页源代码发现index.txt 通过index.txt我们获得了后端的源代码 我们可以通过我画出来的这两个重要的信息得知 第一个sql查询语句没有任何过滤说明存在SQL注入漏洞. 第 ...

  6. Java的比较器Comparable与Comparator

    在Java中有两个比较器:Comparable.Comparator 对于Integer.Double等等类型,可以直接对他们进行比较,因为已经实现了比较的方式,然而在平时常常会面临需要对集合进行排序 ...

  7. 应聘阿里,字节跳动美团90%会问到的JVM面试题! 史上最全系列!

    Java 内存分配 • 寄存器:程序计数器,是线程私有的,就是一个指针,指向方法区中的方法字节码.• 静态域:static 定义的静态成员.• 常量池:编译时被确定并保存在 .class 文件中的(f ...

  8. 这个厉害了,阿里P7大佬都在看的SpringCloud 总结,帮你梳理全部知识点!

    微服务 微服务架构是一种以一些微服务来替代开发单个大而全应用的方法,每一个小服务运行在自己的进程里,并以轻量级的机制来通信, 通常是 HTTP RESTful API.微服务强调小快灵, 任何一个相对 ...

  9. Mac专用下载器Folx软件中有没有“下载速度控制”功能

    Mac专用下载器Folx软件不仅下载速度快,功能多,而且也可以实现下载上传速度控制的功能.下面小编将在Mac系统平台上,使用Folx 5版本,向大家全面介绍下Folx这款下载软件的速度控制功能,其中包 ...

  10. Vegas教程:教你制作热门人物消失特效

    在许多电影中,我们经常会看到一些人物逐渐消失的情景,这种情景一般都是通过后期技术处理的结果,现实生活中根本不可能出现,那么这种特效是如何制作处理的呢?下面小编就来教大家如何用Vegas    Pro ...