BZOJ3033: 太鼓达人(欧拉回路)
题意
Sol
第一问的答案是\(2^M\),因为每个位置只有\(0 / 1\)两种情况,最优情况下一定是每个位置代表着一个长度为\(K\)的字符串
考虑相邻两个字符串之间的转化,第二个字符串可以由第一个字符串在后面加\(0 / 1\)转移而来,因为转移关系会形成环,所以我们只需要找一条欧拉回路即可,每次走的时候优先走编号小的边
代码好神啊。看不懂的话可以手玩一下\(n = 2\)的数据
#include<bits/stdc++.h>
using namespace std;
int K, Lim, vis[1 << 12], ans[1 << 12];
int dfs(int sta, int dep) {
if(vis[sta]) return 0;
if(dep == Lim + 1) return 1;
vis[sta] = 1; ans[dep] = sta & 1;//得到该字符的最后一个元素
if(dfs((sta << 1) & Lim, dep + 1)) return 1;
if(dfs((sta << 1 | 1) & Lim, dep + 1)) return 1;
vis[sta] = 0;
return 0;
}
int main() {
cin >> K;
cout << (Lim = ((1 << K) - 1)) + 1 << endl;
dfs(0, 1);
for(int i = 1; i < K; i++) putchar('0');
for(int i = 1; i <= Lim - K + 2; i++) printf("%d", ans[i]);
return 0;
}
BZOJ3033: 太鼓达人(欧拉回路)的更多相关文章
- bzoj3033: 太鼓达人 欧拉路径
题目链接 bzoj3033: 太鼓达人 题解 对于k-1位点,k位二进制位边,将点的转移连起来 每个点的入度和出度相等并且全部是偶点 只需要在这个图中找字典序最小的欧拉回路 可以贪心地找字典序较小的边 ...
- BZOJ3033 太鼓达人题解
太鼓达人 时间限制: 1 Sec 内存限制: 128 MB 题目描述 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行.这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是 ...
- BZOJ3033太鼓达人——哈密顿回路/欧拉回路
题目描述 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行.这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk.Poet_shy和lydrainbo ...
- BZOJ3033: 太鼓达人(欧拉回路)
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 524 Solved: 400[Submit][Status][Discuss] Description ...
- [BZOJ3033]太鼓达人|欧拉图
Description 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行.这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk.Poet_shy和ly ...
- bzoj 3033: 太鼓达人 [欧拉回路]
3033: 太鼓达人 题意:长m的01环,每个长k的子串都是不同的01串.给出k,求最大的M以及字典序最小的方案. \(M=2^k\) 可以把k-1位01串看成点,k位01串就是边,满足欧拉回路的条件 ...
- BZOJ3033 太鼓达人
3033: 太鼓达人 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 690 Solved: 497[Submit][Status][Discuss] ...
- [BZOJ3033]:太鼓达人(爆搜)
题目传送门 题目描述 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行.这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk.Poet_shy和lyd ...
- BZOJ3033:太鼓达人(DFS,欧拉图)
Description 七夕祭上,Vani牵着cl的手,在明亮的灯光和欢乐的气氛中愉快地穿行.这时,在前面忽然出现了一台太鼓达人机台,而在机台前坐着的是刚刚被精英队伍成员XLk.Poet_shy和ly ...
随机推荐
- P3230 [HNOI2013]比赛
$ \color{#0066ff}{ 题目描述 }$ 沫沫非常喜欢看足球赛,但因为沉迷于射箭游戏,错过了最近的一次足球联赛.此次联 赛共N支球队参加,比赛规则如下: (1) 每两支球队之间踢一场比赛. ...
- 老男孩python作业5-开发一个简单的python计算器
开发一个简单的python计算器 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568 ...
- 简单了解树形DP
今天在B站看了一个树形DP教学视频有所收获,做一个小小的总结 AV号和链接在这:av12194537 那么先介绍一下树形DP 树形DP就是在树这个特殊的数据结构上进行的DP.有两种方向:自顶向下和自底 ...
- rest-assured的根路径(root path)和URL编码(URL Encoding)
一.根路径(Root path) 为了避免在body方法中使用重复的路径来断言,我们可以指定一个根路径(root path),比如: 我们以前的写法是: when(). get("/some ...
- HDU 6356 (线段树-l,r 之间小于val 的变val+单点求值)
题目描述: 给你一个长度为n的最开始为0的数以及m个更新操作以及数据生成器参数X,Y,Z.每次操作,将由数据生成器生成出li,ri,vi.让你从区间[li,ri]中,将所有小于vi的数变为vi.最后让 ...
- Codeforces - 570D 离散DFS序 特殊的子树统计 (暴力出奇迹)
题意:给定一棵树,树上每个节点有对应的字符,多次询问在\(u\)子树的深度为\(d\)的所有节点上的字符任意组合能否凑成一个回文串 把dfs序存储在一个二维线性表中,一个维度记录字符另一个维度记录深度 ...
- LightOJ - 1234 分块预处理
求∑1/i,但是范围很大 和bitmap的想法一样,分个块,均摊复杂度就降下来了 //到底排行榜上的0ms是怎么做到的? #include<bits/stdc++.h> using nam ...
- 获取Java class或者jar文件的本地路径
对于常规java class打成jar文件后,要获取它的本地路径,可以用如下方法. final File f = new File(TestClass.class.getProtectionDomai ...
- Python爬虫常用之PyQuery
PyQuery是解析页面常用的库.是python对jquery的封装.下面是一份解析基本页面的代码.后期用到复杂或者实用的方式再增加. from pyquery import PyQuery as p ...
- 使用 PuTTY 时遇到错误:“expected key exchange group packet from server”
情况 使用 PuTTY 通过 SSH 访问 ProxySG 或 Advanced Secure Gateway (ASG) 时,您会看到如下错误:"expected key exchange ...