codeforces 287 C. Lucky Permutation
来源:互联网 发布:网络电台软件下载 编辑:程序博客网 时间:2024/06/16 00:27
题意:
ppi = n - i + 1.构造一个1到n的序列满足该式子。
解题思路:
观察一下可以发现四个为一组。
如:
2 4 1 3
Pp1=P2=4-1+1=4
Pp2=P4=4-2+1=3
Pp3=P1=4-3+1=2;
Pp4=P3=4-4+1=1;
1和4的位置对应到3和2的位置,满足四个为一组的能构成,如果多一个也可以,放在最中间Ppi正好等于自己也可以,其它情况(n%4>1)全都不行。
然后就是四个一组去构造就行了,把相邻两个数及其对应的n-i+1分卫一组。
代码:
#include <bits/stdc++.h>using namespace std;const int maxn=1e5+5;int a[maxn];int book[maxn];int main(){ int n, i; cin>>n; if(n==1)return 0*printf("1\n"); if(n%4>1)return 0*printf("-1\n"); int m=n; if(n&1) { a[n/2+1]=n/2+1; book[n/2+1]=1; } a[1]=2; a[2]=n; a[n]=n-1; a[n-1]=1; book[2]=1; book[1]=1; book[n]=1; book[n-1]=1; for(i=1; i<=n; i++) { if(book[i]==0) { int x; x=i+1; a[i]=x; a[x]=n-i+1; a[n-i+1]=n-x+1; a[n-x+1]=i; book[i]=1; book[x]=1; book[n-x+1]=1; book[n-i+1]=1; } } printf("%d", a[1]); for(i=2; i<=n; i++) { printf(" %d", a[i]); }}
阅读全文
0 0
- codeforces 287 C. Lucky Permutation
- [杂题] Codeforces #121C. Lucky Permutation
- Lucky Permutation Triple CodeForces
- codeforces 121C C. Lucky Permutation(数论+构造)
- CodeForces 304C Lucky Permutation Triple(推理分析)
- Codeforces Round #183 (Div. 2)-C. Lucky Permutation Triple
- C. Lucky Permutation----思维题
- CodeForces Round 176Div1 A Lucky permutation
- codeforces #303A Lucky Permutation Triple 构造
- Codeforces 303A Lucky Permutation Triple【思维】
- Codeforces 109 C. Lucky Tree
- CodeForces-630C. Lucky Numbers
- Codeforces 630C Lucky Numbers
- CodeForces-630C. Lucky Numbers
- CodeForces 630C:Lucky Numbers
- CodeForces - 630C Lucky Numbers
- 【CodeForces】[630C]Lucky Numbers
- Codeforces 630C Lucky Numbers
- 40个Java多线程问题总结
- xilinx 安装驱动失败或者驱动不适用于该平台解决方案
- 17-6-15JS
- 欢迎使用CSDN-markdown编辑器
- 中文thchs30
- codeforces 287 C. Lucky Permutation
- 用div+css架设页面框架
- 微信新功能内测曝光,再次向支付宝发起挑战
- 【SEO】标题写作技巧:好的标题是靠这样想出来的
- 绿色版JDK未配置环境变量查看多少位版本
- 十步完全理解 SQL
- springmvc的Interceptor配置小问题
- 医学图像分割--U-Net: Convolutional Networks for Biomedical Image Segmentation
- BZOJ4551[HEOI2016]树