题目传送门

 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 *************************************************/
10
11 #include <cstdio>
12 #include <algorithm>
13 #include <iostream>
14 #include <sstream>
15 #include <cstring>
16 #include <cmath>
17 #include <string>
18 #include <vector>
19 #include <queue>
20 #include <deque>
21 #include <stack>
22 #include <list>
23 #include <map>
24 #include <set>
25 #include <bitset>
26 #include <cstdlib>
27 #include <ctime>
28 using namespace std;
29
30 typedef long long ll;
31 const int MAXN = 1e5 + 10;
32 const int INF = 0x3f3f3f3f;
33 const int MOD = 1e9 + 7;
34 bool vis[MAXN];
35 int a[MAXN];
36
37 int main(void)    {       //Codeforces Round #275 (Div. 2) C. Diverse Permutation
38     int n, k;
39     while (scanf ("%d%d", &n, &k) == 2) {
40         if (k == 1) {
41             for (int i=1; i<=n; ++i)    {
42                 printf ("%d%c", i, (i==n) ? '\n' : ' ');
43             }
44             continue;
45         }
46         memset (vis, false, sizeof (vis));
47         int j = 1;  a[0] = n;   vis[a[0]] = true;   bool flag = false;
48         for (int i=k; i>=1; --i)    {
49             if (flag)     {
50                 a[j] = a[j-1] + i;  vis[a[j]] = true;  ++j;     flag = !flag;
51             }
52             else    {
53                 a[j] = a[j-1] - i;  vis[a[j]] = true;   j++;    flag = !flag;
54             }
55         }
56         int p = n;
57         for (int i=j; i<n; ++i) {
58             for (int k=p; k>=1; --k)    {
59                 if (!vis[k])    {
60                     a[i] = k;   vis[k] = true; p = k; break;
61                 }
62             }
63         }
64         for (int i=0; i<n; ++i)    {
65             printf ("%d%c", a[i], (i==n-1) ? '\n' : ' ');
66         }
67     }
68
69     return 0;
70 }

转载于:https://www.cnblogs.com/Running-Time/p/4695617.html

构造 Codeforces Round #275 (Div. 2) C. Diverse Permutation相关推荐

  1. Codeforces Round #275 (Div. 2) c

    2019独角兽企业重金招聘Python工程师标准>>> /*** @brief Codeforces Round #275 (Div. 2) c* @file c.cpp* @aut ...

  2. 构造 Codeforces Round #302 (Div. 2) B Sea and Islands

    题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...

  3. 暴力+构造 Codeforces Round #283 (Div. 2) C. Removing Columns

    题目传送门 1 /* 2 题意:删除若干行,使得n行字符串成递增排序 3 暴力+构造:从前往后枚举列,当之前的顺序已经正确时,之后就不用考虑了,这样删列最小 4 */ 5 /************* ...

  4. 贪心+构造 Codeforces Round #277 (Div. 2) C. Palindrome Transformation

    题目传送门 1 /* 2 贪心+构造:因为是对称的,可以全都左一半考虑,过程很简单,但是能想到就很难了 3 */ 4 /**************************************** ...

  5. Codeforces Round #275 (Div. 2) D

    题意 : 一个数组 给出m个限制条件 l r z 代表从l 一直 & 到 r 为 z  问能否构造出这种数组 如果可以 构造出来 因为 n m 都是1e5 而l r 可能输入进去就超时了 所以 ...

  6. Codeforces Round #835 (Div. 4) B. Lost Permutation

    You are given an array a[0-n−1]a[0-n−1] of nn integers. This array is called a "valley" if ...

  7. Codeforces Round #742 (Div. 2) F. One-Four Overload 构造 + 二分图染色

    传送门 文章目录 题意: 思路: 题意: 给你一个n∗mn*mn∗m的矩形,包含...和XXX,你有两种颜色,你需要给...染色使得每个XXX上下左右相邻的...其两种颜色个数相同,输出一种合法方案. ...

  8. Codeforces Round #453 (Div. 1) D. Weighting a Tree 构造 + dfs树

    传送门 文章目录 题意: 思路: 题意: 给你一颗nnn个点的图,每个点都有一个点权cic_ici​,要求你给每个边赋一个权值kik_iki​,要求对于每个点与他相连的边的权值之和等于这个点的点权ci ...

  9. Codeforces Round #381 (Div. 1) A. Alyona and mex 构造

    传送门 文章目录 题意: 思路: 题意: 你需要确定一个长度为nnn的数组aaa,满足给定的mmm个[l,r][l,r][l,r]限制,需要保证构造出来的aaa数组对于每个[l,r][l,r][l,r ...

最新文章

  1. 单元测试试图告诉我们关于 Activity 的什么事情:第二部分
  2. ceph部署出现错误及解决
  3. 关于海量数据查找排序问题
  4. 释放锁以及添加线程对于队列的变化
  5. js代码自动排版_接口测试平台代码实现9:菜单常显
  6. poj 3411 Paid Roads (dfs)
  7. 关于mybatis中type-aliases-package使用的几个问题
  8. uniapp实现瀑布流基本写法
  9. layer子窗口与父窗口传值
  10. 洞见 | Peter:Web3.0 的宏观架构
  11. JDKAndroid下载安装
  12. java调用考勤机_zkteco iface702 中控考勤机java开发步骤一---连接考勤机
  13. MySql领域经典之作,“不敢自诩为MySql专家,mybatis架构设计及源码分析系列
  14. 空间不足以提取VMware Tools解决方法
  15. EFR32--如何在EFR32程序中修改UUID
  16. 最强大易用的开源MODBUS库-YMODBUS,包含MASTER/SLAVE
  17. AOSP Android 8.0 冷启动流程分析(二)
  18. 文库变现流量+赚钱副业好项目
  19. FPGA(三)触发器与锁存器
  20. 辛迪加、卡特尔、托拉斯

热门文章

  1. Javaweb编程中的乱码问题
  2. GROUP与HAVING的使用
  3. 关于Linux系统中用户权限问题
  4. Linux管事器战略 Web站点的悄然八要素
  5. Project Chameleon Work In Progress 11
  6. 11月11日:一个人的情人节
  7. html div百分比计算,css计算元素百分比大小
  8. 将一个c 语言源程序文件中所有注释去掉后,存入另一个文件.,C实验内容.doc
  9. cordova指定版本_Cordova 基本命令 以及如何添加,删除插件
  10. “‘天池·TEENTOP杯’AI少年挑战赛”正式启动!