Codeforces 482A Diverse Permutation(构造)

题目链接:Codeforces 482A Diverse Permutation

题目大意:给定N和K,即有一个1~N的序列,现在要求找到一个排序,使得说所有的|pi?pi+1|的值有确定K种不同。

解题思路:构造,1,K+1,2,K,3,K-1,... K+2,K+3 ... N。

#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

const int maxn = 1e5 + 5;

int N, K, arr[maxn], vis[maxn];

int main () {
    scanf("%d%d", &N, &K);

    int u = 1, s = 1, t = K, mv = 1;

    while (t) {
        arr[mv++] = u;
        u = u + s * t;
        s *= -1;
        t--;
    }
    arr[mv++] = u;
    for (int i = K + 2; i <= N; i++)
        arr[i] = i;

    for (int i = 1; i <= N; i++)
        printf("%d%c", arr[i], i == N ? ‘\n‘ : ‘ ‘);
    return 0;
}
时间: 2024-10-12 17:38:46

Codeforces 482A Diverse Permutation(构造)的相关文章

Codeforces 482 - Diverse Permutation 构造题

这是一道蛮基础的构造题. - k         +(k - 1)      -(k - 2) 1 + k ,    1 ,         k ,             2,    ................... \  /        \  /           \  / k          k-1          k-2 如图所示,先构造第一个数,就是1 + k, 然后接下来每个数字和上个数相差k , k -1 , k -2 这样下来,最后一个数字就是一个中间的数字,过程就

codeforces C. Diverse Permutation(构造)

题意:1...n 的全排列中 p1, p2, p3....pn中,找到至少有k个 |p1-p2| , |p2-p3|, ...|pn-1 - pn| 互不相同的元素! 思路: 保证相邻的两个数的差值的绝对值为单调递减序列..... 如果够k个了,最后将没有访问到的元素直接添加到末尾! 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 6 #d

构造 CodeForces 483C Diverse Permutation

题目传送门 1 /* 2 构造:首先先选好k个不同的值,从1到k,按要求把数字放好,其余的随便放.因为是绝对差值,从n开始一下一上, 3 这样保证不会超出边界并且以防其余的数相邻绝对值差>k 4 */ 5 /************************************************ 6 Author :Running_Time 7 Created Time :2015-8-2 9:20:01 8 File Name :B.cpp 9 ********************

Codeforces Round #275 (Div. 1)A. Diverse Permutation 构造

Codeforces Round #275 (Div. 1)A. Diverse Permutation Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/482/problem/A Description Permutation p is an ordered set of integers p1,   p2,   ...,   pn, consisting of n distinct posi

CodeForces 483C Diverse Permutation

Diverse Permutation Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Status Practice CodeForces 483C Description Permutationp is an ordered set of integers p1,   p2,   ...,   pn, consisting of n distinct positive i

Codeforces:Diverse Permutation(找规律)

***********************************声明******************************* 原创作品,出自 "晓风残月xj" 博客,欢迎转载,转载时请务必注明出处(http://blog.csdn.net/xiaofengcanyuexj). 由于各种原因,可能存在诸多不足,欢迎斧正! ******************************************************************* time limit

Codeforces Round #275 (Div. 2) C - Diverse Permutation (构造)

题目链接:Codeforces Round #275 (Div. 2) C - Diverse Permutation 题意:一串排列1~n.求一个序列其中相邻两项差的绝对值的个数(指绝对值不同的个数)为k个.求序列. 思路:1~k+1.构造序列前段,之后直接输出剩下的数.前面的构造可以根据,两项差的绝对值为1~k构造. AC代码: #include <stdio.h> #include <string.h> int ans[200010]; bool vis[100010]; i

codeforces359B - Permutation 构造

题意:给你n,k,问你是否满足    所有偶数项减前一项绝对值的和 - 所有偶数项减前一项和的绝对值 = 2×k 解题思路:因为K 的范围适合所以就直接构造了 解题代码: 1 // File Name: 359b.cpp 2 // Author: darkdream 3 // Created Time: 2014年07月26日 星期六 14时44分44秒 4 5 #include<vector> 6 #include<list> 7 #include<map> 8 #i

Codeforces 534C Polycarpus&#39; Dice 构造

题意:给你n个筛子,第 i 个筛子有 可以表示范围 1-a[i]的数,给你最后筛子和,问你每个筛子不可能的值有多少个. 解题思路:得到每个筛子的取值范围. 解题代码: 1 // File Name: c.cpp 2 // Author: darkdream 3 // Created Time: 2015年04月13日 星期一 00时38分58秒 4 5 #include<vector> 6 #include<list> 7 #include<map> 8 #includ