构造 Codeforces Round #275 (Div. 2) C. 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 *************************************************/ 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相关推荐
- Codeforces Round #275 (Div. 2) c
2019独角兽企业重金招聘Python工程师标准>>> /*** @brief Codeforces Round #275 (Div. 2) c* @file c.cpp* @aut ...
- 构造 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 的例子可以 ...
- 暴力+构造 Codeforces Round #283 (Div. 2) C. Removing Columns
题目传送门 1 /* 2 题意:删除若干行,使得n行字符串成递增排序 3 暴力+构造:从前往后枚举列,当之前的顺序已经正确时,之后就不用考虑了,这样删列最小 4 */ 5 /************* ...
- 贪心+构造 Codeforces Round #277 (Div. 2) C. Palindrome Transformation
题目传送门 1 /* 2 贪心+构造:因为是对称的,可以全都左一半考虑,过程很简单,但是能想到就很难了 3 */ 4 /**************************************** ...
- Codeforces Round #275 (Div. 2) D
题意 : 一个数组 给出m个限制条件 l r z 代表从l 一直 & 到 r 为 z 问能否构造出这种数组 如果可以 构造出来 因为 n m 都是1e5 而l r 可能输入进去就超时了 所以 ...
- 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 ...
- Codeforces Round #742 (Div. 2) F. One-Four Overload 构造 + 二分图染色
传送门 文章目录 题意: 思路: 题意: 给你一个n∗mn*mn∗m的矩形,包含...和XXX,你有两种颜色,你需要给...染色使得每个XXX上下左右相邻的...其两种颜色个数相同,输出一种合法方案. ...
- Codeforces Round #453 (Div. 1) D. Weighting a Tree 构造 + dfs树
传送门 文章目录 题意: 思路: 题意: 给你一颗nnn个点的图,每个点都有一个点权cic_ici,要求你给每个边赋一个权值kik_iki,要求对于每个点与他相连的边的权值之和等于这个点的点权ci ...
- 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 ...
最新文章
- 单元测试试图告诉我们关于 Activity 的什么事情:第二部分
- ceph部署出现错误及解决
- 关于海量数据查找排序问题
- 释放锁以及添加线程对于队列的变化
- js代码自动排版_接口测试平台代码实现9:菜单常显
- poj 3411 Paid Roads (dfs)
- 关于mybatis中type-aliases-package使用的几个问题
- uniapp实现瀑布流基本写法
- layer子窗口与父窗口传值
- 洞见 | Peter:Web3.0 的宏观架构
- JDKAndroid下载安装
- java调用考勤机_zkteco iface702 中控考勤机java开发步骤一---连接考勤机
- MySql领域经典之作,“不敢自诩为MySql专家,mybatis架构设计及源码分析系列
- 空间不足以提取VMware Tools解决方法
- EFR32--如何在EFR32程序中修改UUID
- 最强大易用的开源MODBUS库-YMODBUS,包含MASTER/SLAVE
- AOSP Android 8.0 冷启动流程分析(二)
- 文库变现流量+赚钱副业好项目
- FPGA(三)触发器与锁存器
- 辛迪加、卡特尔、托拉斯
热门文章
- Javaweb编程中的乱码问题
- GROUP与HAVING的使用
- 关于Linux系统中用户权限问题
- Linux管事器战略 Web站点的悄然八要素
- Project Chameleon Work In Progress 11
- 11月11日:一个人的情人节
- html div百分比计算,css计算元素百分比大小
- 将一个c 语言源程序文件中所有注释去掉后,存入另一个文件.,C实验内容.doc
- cordova指定版本_Cordova 基本命令 以及如何添加,删除插件
- “‘天池·TEENTOP杯’AI少年挑战赛”正式启动!