题意略。

思路:

第一问:

递归地来写,找对称,发现关于(1<<y) - 1和(1<<y)对称的数字做 & 结果为0。

第二问:

6,7特殊考虑。循环左移(1<<y) ~ (1<<(y + 1) - 1),可以保证这个区间内的值与下标做 & 结果不为0。然而如果在这个段内只有1<<y这一个数,那么

我们无法循环左移,此时要特判为NO。

详见代码:

#include<bits/stdc++.h>
#define maxn 50
#define maxn2 100005
using namespace std; int one[maxn],tail;
int ans1[maxn2],ans2[maxn2];
int six[] = {,,,,,};
int seven[] = {,,,,,,}; void init(){
one[] = ;
tail += ;
for(int i = ;(<<i) - <= ;++i){
one[i] = (<<i) - ;
tail += ;
}
}
int cnt1(int x){
int ret = ;
while(x){
x = x & (x - );
++ret;
}
return ret;
}
void construct(int x){
if(x <= ) return;
int pos = lower_bound(one,one + tail,x) - one - ;
int mid = one[pos] + ;
for(int i = mid;i <= x;++i) swap(ans2[i],ans2[mid - (i - mid) - ]);
x = mid - (x - mid) - - ;
construct(x);
} int main(){
init();
int n;
scanf("%d",&n);
if(n & ) printf("NO\n");
else{
printf("YES\n");
for(int i = ;i <= n;++i) ans2[i] = i;
construct(n);
printf("%d",ans2[]);
for(int i = ;i <= n;++i) printf(" %d",ans2[i]);
printf("\n");
} if(n <= || cnt1(n) == ) printf("NO\n");
else if(n == ){
printf("YES\n");
printf("%d",six[]);
for(int i = ;i < ;++i) printf(" %d",six[i]);
printf("\n");
}
else if(n == ){
printf("YES\n");
printf("%d",seven[]);
for(int i = ;i < ;++i) printf(" %d",seven[i]);
printf("\n");
}
else{
printf("YES\n");
for(int i = ;i <= ;++i) ans1[i] = seven[i - ];
int lft = ,rht = min((lft<<) - ,n);
while(lft < n){
for(int i = lft;i <= rht;++i){
if(i < rht) ans1[i] = i + ;
else ans1[i] = lft;
}
lft = lft<<;
rht = min((lft<<) - ,n);
}
printf("%d",ans1[]);
for(int i = ;i <= n;++i) printf(" %d",ans1[i]);
printf("\n");
}
return ;
}

CodeForces 909F的更多相关文章

  1. python爬虫学习(5) —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  2. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  3. 【Codeforces 738C】Road to Cinema

    http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...

  4. 【Codeforces 738A】Interview with Oleg

    http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...

  5. CodeForces - 662A Gambling Nim

    http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...

  6. CodeForces - 274B Zero Tree

    http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...

  7. CodeForces - 261B Maxim and Restaurant

    http://codeforces.com/problemset/problem/261/B 题目大意:给定n个数a1-an(n<=50,ai<=50),随机打乱后,记Si=a1+a2+a ...

  8. CodeForces - 696B Puzzles

    http://codeforces.com/problemset/problem/696/B 题目大意: 这是一颗有n个点的树,你从根开始游走,每当你第一次到达一个点时,把这个点的权记为(你已经到过不 ...

  9. CodeForces - 148D Bag of mice

    http://codeforces.com/problemset/problem/148/D 题目大意: 原来袋子里有w只白鼠和b只黑鼠 龙和王妃轮流从袋子里抓老鼠.谁先抓到白色老鼠谁就赢. 王妃每次 ...

随机推荐

  1. [Abp vNext 源码分析] - 6. DDD 的应用层支持 (应用服务)

    一.简要介绍 ABP vNext 针对于应用服务层,为我们单独设计了一个模块进行实现,即 Volo.Abp.Ddd.Application 模块. PS:最近博主也是在恶补 DDD 相关的知识,这里推 ...

  2. HTML页面中的布局问题

    在做网站中,给整个大的框架宽度设置为100%,然后设置body的最小宽度是网站的内容部分的宽度.网站内容的宽度是固定的.

  3. Centos7 安装VNCserver&图形界面

    1.安装软件包. yum install tigervnc-server -y yum groups install GNOME yum groups install "Virtualiza ...

  4. Codeforces Round #554 (Div. 2) C. Neko does Maths (数论 GCD(a,b) = GCD(a,b-a))

    传送门 •题意 给出两个正整数 a,b: 求解 k ,使得 LCM(a+k,b+k) 最小,如果有多个 k 使得 LCM() 最小,输出最小的k: •思路 时隔很久,又重新做这个题 温故果然可以知新❤ ...

  5. Jquery 小结

    1. 名词解释 实例对象:var p1=new Person();  p1就是实例对象 构造:function Person(){} 原型对象:在 JavaScript 中,每当定义一个对象(函数也是 ...

  6. ES 22 - Elasticsearch中如何进行日期(数值)范围查询

    目录 1 范围查询的符号 2 数值范围查询 3 时间范围查询 3.1 简单查询示例 3.2 关于时间的数学表达式(date-math) 3.3 关于时间的四舍五入 4 日期格式化范围查询(format ...

  7. 【JS档案揭秘】第一集 内存泄漏与垃圾回收

    程序的运行需要内存,对于一些需要持续运行很久的程序,尤其是服务器进程,如果不及时释放掉不再需要的内存,就会导致内存堆中的占用持续走高,最终可能导致程序崩溃. 不再需要使用的内存,却一直占用着空间,得不 ...

  8. Django websocket之web端实时查看日志实践案例

    这是Django Channels系列文章的第二篇,以web端实现tailf的案例讲解Channels的具体使用以及跟Celery的结合 通过上一篇<Django使用Channels实现WebS ...

  9. PHP验证身份证格式

    互联网公司对身份证验证的需求越来越多,然而普通的小公司是无法对接公安部门的身份认证系统的.几乎都是在网上买一些大的互联网公司的一些认证服务.即使是便宜一些的认证价格也达到了10万次/万元.也就是一角钱 ...

  10. oracle 创建表空间,用户并授权

    1. 查看所有表空间及存储路径 select file_name, tablespace_name from dba_data_files; 2. 创建表空间 CREATE TABLESPACE xs ...