题意:1...n 的全排列中 p1, p2, p3....pn中,找到至少有k个
|p1-p2| , |p2-p3|, ...|pn-1 - pn| 互不相同的元素!

思路: 保证相邻的两个数的差值的绝对值为单调递减序列.....

如果够k个了,最后将没有访问到的元素直接添加到末尾!

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>#define N 100005
using namespace std;int vis[N];
int num[N];
int main(){int n, k;scanf("%d%d", &n, &k);num[1] = 1;vis[1] = 1;int c = k, i;for(i=2; i<=n; ++i){if(num[i-1]-c >0 && !vis[num[i-1]-c]){vis[num[i-1]-c]=1;num[i] = num[i-1]-c;}else if(num[i-1]+c <= n && !vis[num[i-1]+c]){vis[num[i-1]+c]=1;num[i] = num[i-1]+c;}--c;if(c < 1) break;}for(int j=1; j<=n; ++j)if(!vis[j])   num[++i]=j;printf("%d", num[1]);for(int j=2; j<=n; ++j)printf(" %d", num[j]);printf("\n");return 0;
}

codeforces C. Diverse Permutation(构造)相关推荐

  1. Codeforces 482 - Diverse Permutation 构造题

    这是一道蛮基础的构造题. - k         +(k - 1)      -(k - 2) 1 + k ,    1 ,         k ,             2,    ....... ...

  2. CodeForces - 287C Lucky Permutation(构造)

    题目链接:点击查看 题目大意:构造一个合法的排列,满足 ppi=n−i+1p_{p_{i}}=n-i+1ppi​​=n−i+1 题目分析:因为第四个样例的存在降低了本题的难度,不然感觉还是有点难度的一 ...

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

    题目传送门 1 /* 2 构造:首先先选好k个不同的值,从1到k,按要求把数字放好,其余的随便放.因为是绝对差值,从n开始一下一上, 3 这样保证不会超出边界并且以防其余的数相邻绝对值差>k 4 ...

  4. C. Diverse Permutation(Codeforces Round #275(div2)

    C. Diverse Permutation time limit per test 1 second memory limit per test 256 megabytes input standa ...

  5. CF482A Diverse Permutation(构造题)

    题目链接: Diverse Permutation - 洛谷https://www.luogu.com.cn/problem/CF482A 思路: 对于一串顺序排列的数,比如1,2,3,4,5,6,如 ...

  6. 【CodeForces - 483C】Diverse Permutation(思维构造)

    题干: Permutation p is an ordered set of integers p1,   p2,   ...,   pn, consisting of ndistinct posit ...

  7. CF183C:Diverse Permutation(构造)

    解析 首先考虑如何构造k=n-1的情况 发现令排列为1,n,2,n-1-即可 那么在k不等于n-1时 只需要让前k项与上面的序列相同,后面公差为1即可 代码 #include<bits/stdc ...

  8. Codeforces.612E.Square Root of Permutation(构造)

    题目链接 \(Description\) 给定一个\(n\)的排列\(p_i\),求一个排列\(q_i\),使得对于任意\(1\leq i\leq n\),\(q_{q_i}=p_i\).无解输出\( ...

  9. CodeForces - 1607D Blue-Red Permutation(贪心)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的数列,每个数字有一个颜色,如果是蓝色,每次操作则可以减一:如果是红色,每次操作则可以加一. 问有限次操作后,能否将数组变为一个长度为 nnn 的 ...

最新文章

  1. matlab直方图绘制
  2. CTFshow php特性 web95
  3. 下列设备中 微型计算机系统必须具备的是,计算机应用基础题库
  4. 有了malloc/free,为什么还要new/delete?
  5. workbook加载文件路径_【Python】文件重命名(按照Excel清单)
  6. Web前端笔记-2D图形平面内平移定位(two.js)
  7. html div自动撑起来,解决子级用css float浮动 而父级div没高度不能自适应高度
  8. java地址值是几进制_Java三种进制的数值常量操作代码
  9. 为什么Linux CFS调度器没有带来惊艳的碾压效果
  10. java web项目_一个完整JavaWeb项目开发总结
  11. HTML跳转php没反应的问题解决
  12. 洛杉矶 夏威夷_夏威夷大学如何解决当今的高等教育问题
  13. Netty网络编程第七卷
  14. php怎么使用sendcloud,请教大牛们 PHPHub 使用 sendcloud 发送邮件需要怎么配置?
  15. XSS及CSRF攻击防御
  16. 2021中国AI产业10大趋势,一分钟看明白 | WAIC2021
  17. 17. 尚融宝引入阿里云短信服务
  18. npm not found: python2
  19. 台式计算机的选购标准,如何选购台式电脑机箱?小白装机选购电脑机箱知识指南(2)...
  20. iPad2通过DFU模式刷机

热门文章

  1. CreateProcess
  2. Fiddler 域名过滤
  3. UILabel 详解
  4. Android 目录
  5. Html颜色值 to RGB
  6. 事件冒泡 bubbles cancelBubble stopPropagation() stopImmediatePropagation() 区别
  7. jQuery选择器之层级选择器
  8. Maximum Xor Secondary(单调栈好题)
  9. tornada-数据库
  10. oracle insert两个关联表