题意:给出n,让你把0,1,2,3...n排序,使其的子序列(>=2)都是非等差数列。
额,这边有个trick,只要对序列按奇偶位置分成两个序列,然后对两个子序列同样进行分类,最后排出来的一定是非等差数列。
代码:
/*
* Author: illuz <iilluzen[at]gmail.com>
* Blog: http://blog.csdn.net/hcbbt
* File: uva11129.cpp
* Lauguage: C/C++
* Create Date: 2013-09-04 21:40:25
* Descripton: UVA 11129 An antiarithmetic permutation, partitation
*/
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define rep(i, n) for (int i = 0; i < (n); i++)
const int MAXN = 10010;
int n, a[MAXN], t[MAXN];
void solve(int l, int r) {
if (r == l) return;
memcpy