1976 Queen数列

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 黄金 Gold
 
 
 
题目描述 Description

将1到N的整数数列(1,2,3,……,N)打乱,变为数列a(a[1],a[2],a[3],……,a[N])。如果这个数列对于任意的i∈{1,2,3,……,N}都满足a[a[i]]=N+1-i,则这个数列叫做长度为N的Queen数列。

现给你长度N,请输出字典序最小的Queen数列。

所谓字典序最小,即为a[1]最小,在此基础上a[2]最小,在此基础上a[3]最小……

输入描述 Input Description

共一行,为一个整数N。

输出描述 Output Description

共一行,有i个整数,以空格隔开(行尾没有空格),第i个整数为a[i]。其中a为字典序最小的长度为N的Queen数列。如果不存在这样的数列,请输出一个0。

样例输入 Sample Input

Input1:

3

Input2:

4

Input3:

5

样例输出 Sample Output

Output1:

0

Output2:

2 4 1 3

Output3:

2 5 3 1 4

数据范围及提示 Data Size & Hint

不存在长度为3的Queen数列。

2 4 1 3为字典序最小的长度为4的Queen数列。

2 5 3 1 4为字典序最小的长度为5的Queen数列。

对于20%的数据,N≤10;对于50%的数据,N≤1000;对于100%的数据,1≤N≤200000。

/*
一看题,好像没有什么头绪,标签竟然是搜索,好吧,那就打个搜索,全排列枚举在判断,n》10就超时了
分析n<10数列的规律
0
0
0
2 4 1 3
2 5 3 1 4
0
0
2 8 4 6 3 5 1 7
2 9 4 7 5 3 6 1 8
0
原来 if n mod 4>1 then begin writeln(0); halt; end;
而且一头一尾之和相等,于是搜索二分,时间复杂度减半,不过还是搜索
减半后 n范围可以到20
再拿20分析
2 20 4 18 6 16 8 14 10 12 9 11 7 13 5 15 3 17 1 19
就可以找出规律
*/
#include<iostream>
#include<cstdio>
using namespace std;
#define maxn 200010
int n,a[maxn];
int main(){
scanf("%d",&n);
if(n%>){cout<<;return ;}
for(int i=;i<=n/;i++){
a[*i-]=*i;
a[*i]=n+-*i;
a[n-*i+]=n+-*i;
a[n-*i+]=*i-;
}
if(n%==)a[n/+]=(n+)/;
for(int i=;i<=n;i++)printf("%d ",a[i]);
}

Codevs 1976 Queen数列的更多相关文章

  1. 1976 Queen数列

    1976 Queen数列  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 将1到N的整数数列(1 ...

  2. 矩阵乘法快速幂 codevs 1250 Fibonacci数列

    codevs 1250 Fibonacci数列  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond   题目描述 Description 定义:f0=f1=1 ...

  3. 矩阵乘法快速幂 codevs 1732 Fibonacci数列 2

    1732 Fibonacci数列 2  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Description 在“ ...

  4. Codevs 4357 不等数列

    不等数列 [题目描述] 将1到n任意排列,然后在排列的每两个数之间根据他们的大小关系插入“>”和“<”.问在所有排列中,有多少个排列恰好有k个“<”.答案对2012取模. [输入格式 ...

  5. codevs 1281 Xn数列

    题目描述 Description 给你6个数,m, a, c, x0, n, g Xn+1 = ( aXn + c ) mod m,求Xn m, a, c, x0, n, g<=10^18 输入 ...

  6. codevs 1281 Xn数列 (矩阵乘法)

    /* 再来个题练练手 scanf longlong 有bug....... */ #include<cstdio> #include<iostream> #include< ...

  7. 博客索引and题目列表

    目录 笔记整理 计划 要学的东西 缺省源 要做的题 搜索 高斯消元 矩阵 排列组合 2019.7.9 2019.7.10 kmp ac自动机 2019.7.11 2019.7.15 笔记整理 1.同余 ...

  8. 矩阵乘法快速幂 codevs 1574 广义斐波那契数列

    codevs 1574 广义斐波那契数列  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 钻石 Diamond   题目描述 Description 广义的斐波那契数列是指形如 ...

  9. Codevs No.1281 Xn数列

    2016-06-01 16:28:25 题目链接: Xn数列 (Codevs No.1281) 题目大意: 给定一种递推式为 Xn=(A*Xn-1+C)%M 的数列,求特定的某一项%G 解法: 矩阵乘 ...

随机推荐

  1. session.use_cookies有什么作用,

    session.use_cookies有什么作用, @ini_set('session.use_cookies', 1);什么意思 若session.use_cookies = 1 sessionid ...

  2. c#生成试卷。。。

    .net下,操作Word的插件有NPOI,Spire,一版大家经常用的是NPOI,我在着手开发的时候,优先考虑的也是NPOI,然而时间比较着急,没有找到NPOI支持2003版本, 就放弃了,从网上发行 ...

  3. EasyNVR将如何能够把内网各种各样的监控摄像机对接到公网云平台

    需求 传统监控行业里面,监控客户端.服务器端,设备端都在一个内网里面,搞个电脑开个监控终端,顶多再配一个NVR做一做摄像机的录像存储.上个电视墙(个人感觉这功能除了面子工程,没啥实用的,还特费电!), ...

  4. Java类加载器(死磕5)

    Java类加载器(  CLassLoader )  死磕5:  自定义一个文件系统classLoader 本小节目录 5.1. 自定义类加载器的基本流程 5.2. 入门案例:自定义文件系统类加载器 5 ...

  5. javascript 正则表达式 详细入门教程

    1.什么是正则表达式 定义: 一个用来搜索.匹配.处理一些符合特定语法规则的一个强大的字符串处理工具. 用途: 进行特定字符和字符串的搜索 替换字符串中指定的字符或字符串 验证字符串是否符合需求 2. ...

  6. Gym - 100283F F. Bakkar In The Army —— 二分

    题目链接:http://codeforces.com/gym/100283/problem/F F. Bakkar In The Army time limit per test 2 seconds ...

  7. JavaScript中浮点数的保留小数位数的问题

    方法一 简介:如题! 繁琐版... 代码如下: var significantFigure= function(value,figure){                 var arr=(valu ...

  8. CentOS 下源码安装LAMP环境

    一.简介 什么是LAMP    LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而言都是在它所代 ...

  9. python多进程执行任务

    https://blog.csdn.net/qq_39694935/article/details/84552076 [Python]multiprocessing Pool 进程间通信共享 直接上代 ...

  10. CNN卷积神经网络_深度残差网络 ResNet——解决神经网络过深反而引起误差增加的根本问题,Highway NetWork 则允许保留一定比例的原始输入 x。(这种思想在inception模型也有,例如卷积是concat并行,而不是串行)这样前面一层的信息,有一定比例可以不经过矩阵乘法和非线性变换,直接传输到下一层,仿佛一条信息高速公路,因此得名Highway Network

    from:https://blog.csdn.net/diamonjoy_zone/article/details/70904212 环境:Win8.1 TensorFlow1.0.1 软件:Anac ...