uva11129
来源:互联网 发布:乌鲁木齐seo 公司 编辑:程序博客网 时间:2024/06/17 06:49
就是给出一个数字n然后把0 到 n-1排个序,要求任意三个数字组成的子序列都不是等差的。
我们可以把奇数位上的排成一个序列,偶数位上的排成一个序列。
例如0 1 2 3 4 5 6 排成
0 2 4 6 1 3 5
这样的话前半段是等差,后半段是等差,但是前后两段就不能构成等差了。
这样再把前半段做这样的操作,后半段也做这样的操作。知道序列长度小于等于2之后。
这样就去安排好了。
AC代码:
#include<iostream>#include<algorithm>using namespace std;const int N =10000 + 5;int num[N];int temp[N];int n;void solve (int start ,int end) {for (int i = 0 ; i < n ;i++) {num[i] = temp[i];}if (end - start <= 2)return ;int j = start;for (int i = start; i < end ;i += 2,j++) {temp[j] = num[i];}for (int i = start + 1 ; i < end; i += 2,j++) {temp[j] = num[i];}solve(start , (start + end + 1) / 2);solve((start + end + 1) /2 , end );}int main () {while (cin >> n && n) {for (int i = 0 ; i < n ;i++) {temp[i] = i;}solve(0 ,n);cout << n << ":";for (int i = 0 ; i < n ; i++) {cout <<" " <<num[i] ; }cout <<endl;}}
0 0
- uva11129
- UVA11129
- uva11129
- uva11129
- uva11129
- uva11129
- Uva11129-An Antiarithmetic Permutation
- [递归]UVA11129 An antiarithmetic permutation
- 【个人训练】(UVa11129)An antiarithmetic permutation
- uva11129 - An antiarithmetic permutation(反算数级数)
- uva11129 - An antiarithmetic permutation(不等差序列,分治法)
- leveldb源码解析1——内存管理类Arena
- 【OpenCV学习笔记】【函数学习】十六(Rect参数介绍)
- xcode6中自动布局autolayout和sizeclass的使用
- ReactOS源代码分析APIC机制
- 在 Mac OS X 中启用和使用“root”用户
- uva11129
- WARNING: Failed to set buffer limit on IPC interconnect socket
- uva 11129(二分)
- HDU 5003 Osu!(数学题)
- ElasticSearch 权威指南
- 下划线EditText-UnderlineEditText-笔记
- 大话设计模式总结
- 解决getOutputStream() has already been called for this response
- poj 1028 Web Navigation