博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3033太鼓达人
阅读量:4664 次
发布时间:2019-06-09

本文共 1526 字,大约阅读时间需要 5 分钟。

Description

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

Input

  一个整数K。

Output

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

//社会我暴搜,人狠得分多
#include
#define re return#define inc(i,l,r) for(int i=l;i<=r;++i)using namespace std;template
inline void rd(T&x){ char c;bool f=0; while((c=getchar())<'0'||c>'9')if(c=='-')f=1; x=c^48; while((c=getchar())>='0'&&c<='9')x=x*10+(c^48); if(f)x=-x;}const int maxn=100005; int n,tot,last,vis[3000],ans[3000];inline bool dfs(int x,int cnt){ ans[cnt]=x; if(cnt==tot) { if((x&last)==0) { inc(i,1,cnt) printf("%d",ans[i]>>(n-1)); re 1; } re 0; //当前数最后n-1位为0 } int num=(x&last)<<1; if(!vis[num]) { vis[num]=1; if(dfs(num,cnt+1))re 1; vis[num]=0; } if(!vis[num|1]) { vis[num|1]=1; if(dfs(num+1,cnt+1))re 1; vis[num|1]=0; } re 0;} int main(){ rd(n); tot=1<
>1; printf("%d ",tot); vis[0]=1; dfs(0,1); re 0;}

 

转载于:https://www.cnblogs.com/lsyyy/p/11423018.html

你可能感兴趣的文章
递归读取文件夹下的文件
查看>>
CodeForces Round 200 Div2
查看>>
HDU-2032
查看>>
总结day6 ---- set集合,基本类型的相互转化,编码,数据类型总结,循环时候不要动列表或者字典,深浅copy...
查看>>
C++的Enum hack(转)
查看>>
【方案】去哪儿网徐磊:如何利用开源技术构建日处理130亿+的实时日志平台?...
查看>>
工作中遇到的人和事
查看>>
连接池的使用(一)
查看>>
HDU 1203 I NEED A OFFER!(0-1背包)
查看>>
Sass学习笔记
查看>>
盒子模型及练习
查看>>
将千克转换成磅 Exercise05_03
查看>>
javascript权威指南学习笔记
查看>>
wannafly 练习赛10 f 序列查询(莫队,分块预处理,链表存已有次数)
查看>>
201571030323 四则运算
查看>>
实验六
查看>>
扁平化团队的实质
查看>>
让IIS 7显示ASP的详细错误信息-无论什么样的代码错误,只显示“500 - 内部服务器错误解决...
查看>>
图像处理复习整理(4.图像去噪)
查看>>
ResultSet的getInt(),getString()方法
查看>>