CodeForces - 359B B. Permutation
2017-08-30 17:30
435 查看
B. Permutation
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
A permutation p is an ordered group of numbers p1, p2, ..., pn,
consisting of n distinct positive integers, each is no more than n.
We'll define number n as the length of permutation p1, p2, ..., pn.
Simon has a positive integer n and a
4000
non-negative integer k,
such that 2k ≤ n. Help him find permutation a of
length 2n, such that it meets this equation:
.
Input
The first line contains two integers n and k (1 ≤ n ≤ 50000, 0 ≤ 2k ≤ n).
Output
Print 2n integers a1, a2, ..., a2n —
the required permutation a. It is guaranteed that the solution exists. If there are multiple solutions, you can print any of them.
Examples
input
output
input
output
input
output
Note
Record |x| represents the absolute value of number x.
In the first sample |1 - 2| - |1 - 2| = 0.
In the second sample |3 - 2| + |1 - 4| - |3 - 2 + 1 - 4| = 1 + 3 - 2 = 2.
In the third sample |2 - 7| + |4 - 6| + |1 - 3| + |5 - 8| - |2 - 7 + 4 - 6 + 1 - 3 + 5 - 8| = 12 - 12 = 0.
题意: 题意很简单给你一个n和k,你需要找到任何!!一个从1到2n的序列使得这个序列满足这个公式.
思路:
假设n为6
可以发现如果k为0,则直接输出1 2 3 4 5 ...11 12就满足公式
如果k为1 如果想尽量小的去改变数的顺序,公式左边的前半部分|2 - 7| + |4 - 6| + |1 - 3| + |5 - 8| ...
为 n 但是后半部分呢
|2 - 7 + 4 - 6 + 1 - 3 + 5 - 8| 是可以改变的。。。 这里的2n个数,我们可以将它看成n对数
1 2一对 3 4一对 5 6一对。。,可以发现我们只要改变每一对数的顺序就可以使得满足这个公式。
若k为1 那么 2 1 3 4 5 6 ....11 12是满足的,这样我们就改变了一对。
若k为2 那么 2 1 4 3 5 6.... 11 12是满足的,这样我们就改变了2对。
到这里 规律就出来了。
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
A permutation p is an ordered group of numbers p1, p2, ..., pn,
consisting of n distinct positive integers, each is no more than n.
We'll define number n as the length of permutation p1, p2, ..., pn.
Simon has a positive integer n and a
4000
non-negative integer k,
such that 2k ≤ n. Help him find permutation a of
length 2n, such that it meets this equation:
.
Input
The first line contains two integers n and k (1 ≤ n ≤ 50000, 0 ≤ 2k ≤ n).
Output
Print 2n integers a1, a2, ..., a2n —
the required permutation a. It is guaranteed that the solution exists. If there are multiple solutions, you can print any of them.
Examples
input
1 0
output
1 2
input
2 1
output
3 2 1 4
input
4 0
output
2 7 4 6 1 3 5 8
Note
Record |x| represents the absolute value of number x.
In the first sample |1 - 2| - |1 - 2| = 0.
In the second sample |3 - 2| + |1 - 4| - |3 - 2 + 1 - 4| = 1 + 3 - 2 = 2.
In the third sample |2 - 7| + |4 - 6| + |1 - 3| + |5 - 8| - |2 - 7 + 4 - 6 + 1 - 3 + 5 - 8| = 12 - 12 = 0.
题意: 题意很简单给你一个n和k,你需要找到任何!!一个从1到2n的序列使得这个序列满足这个公式.
思路:
假设n为6
可以发现如果k为0,则直接输出1 2 3 4 5 ...11 12就满足公式
如果k为1 如果想尽量小的去改变数的顺序,公式左边的前半部分|2 - 7| + |4 - 6| + |1 - 3| + |5 - 8| ...
为 n 但是后半部分呢
|2 - 7 + 4 - 6 + 1 - 3 + 5 - 8| 是可以改变的。。。 这里的2n个数,我们可以将它看成n对数
1 2一对 3 4一对 5 6一对。。,可以发现我们只要改变每一对数的顺序就可以使得满足这个公式。
若k为1 那么 2 1 3 4 5 6 ....11 12是满足的,这样我们就改变了一对。
若k为2 那么 2 1 4 3 5 6.... 11 12是满足的,这样我们就改变了2对。
到这里 规律就出来了。
#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; int main() { int n,k; int cnt=0; scanf("%d %d",&n,&k); for(int i=1;i<=2*n;i++) { if(cnt<k) { if(i%2) { printf("%d ",i+1); } else { printf("%d ",i-1); cnt++; } } else { if(i==2*n) printf("%d\n",i); else printf("%d ",i); } } return 0; }
相关文章推荐
- codeforces 359B B. Permutation(简单构造)
- Codeforces 864D - Make a Permutation! 【贪心】
- Codeforces 612E - Square Root of Permutation (置换+构造)
- CodeForces 233A Perfect Permutation
- Codeforces 864 D Make a Permutation!
- 【codeforces 691 D】【并查集 或者 dfs】aps in Permutation【给一个1到N的排列,M个操作,每次可以交换X Y位置上的数字,求可以得到的最大字典序的数列】
- CodeForces 359D (数论+二分+ST算法)
- codeforces 691D D. Swaps in Permutation(dfs)
- 【CodeForces】500B - New Year Permutation(Floyd)(贪心)
- Codeforces 864D D. Make a Permutation!【思维+线段树+二分+这是一个煞笔做法】
- CodeForces 359 D.Pair of Numbers (二分+ST)
- codeforces 676A Nicholas and Permutation
- [Hash] Codeforces 452F MemSQL Start[c]UP 2.0 - Round 1 F. Permutation
- Codeforces 500B:New Year Permutation(并查集||Floyd+思维)
- CodeForces - 359B Permutation
- CodeForces - 359B Permutation
- [Codeforces 864D]Make a Permutation!
- Codeforces 804E The same permutation(构造)
- codeforces B. Permutation
- Codeforces 618B - Guess the Permutation