CF1942A Farmer John‘s Challenge 翻译

文章讲述了农夫约翰提出的问题,给定整数n和k,寻找一个长度为n的整数数组,其在n次循环移位中有k个排列是有序的。数组元素需在1到10^9之间。没有符合条件的数组则输出-1。
摘要由CSDN通过智能技术生成

CF1942A Farmer John’s Challenge 翻译

题目描述

如果 a 1 ≤ a 2 ≤ ⋯ ≤ a n − 1 ≤ a n a_1 \le a_2 \le \cdots \le a_{n−1} \le a_n a1a2an1an 则称a数组已排序

给你两个农夫约翰最喜欢的整数 n n n k k k 。他向你提出挑战:找出满足以下要求的数组 a 1 , a 2 , ⋯   , a n a_1,a_2,\cdots,a_n a1,a2,,an

  • 对于每个 1 ≤ i ≤ n 1 \le i \le n 1in 满足 1 ≤ a i ≤ 1 0 9 1 \le a_i \le 10^9 1ai109
  • a a a n n n 个循环移位中,正好有 k k k 个被排序。

如果没有这样的数组 a a a ,则输出 − 1 −1 1

† 数组 a a a 的第 x ( 1 ≤ x ≤ n ) x(1 \le x \le n) x(1xn)循环移位 a x , a x + 1 , ⋯   , a n , a 1 , a 2 , ⋯   , a x − 1 a_x,a_{x+1},\cdots,a_n,a_1,a_2,\cdots,a_{x-1} ax,ax+1,,an,a1,a2,,ax1

例如, a = [ 1 , 2 , 3 , 3 ] a=[1,2,3,3] a=[1,2,3,3] 的循环移位如下:

  • x = 1 : [ 1 , 2 , 3 , 3 ] x=1:[1,2,3,3] x=1:[1,2,3,3] (已排序);
  • x = 2 : [ 2 , 3 , 3 , 1 ] x=2:[2,3,3,1] x=2:[2,3,3,1] (未排序);
  • x = 3 : [ 3 , 3 , 1 , 2 ] x=3:[3,3,1,2] x=3:[3,3,1,2] (未排序);
  • x = 4 : [ 3 , 1 , 2 , 3 ] x=4:[3,1,2,3] x=4:[3,1,2,3](未排序)。

输入描述

输入

第一行包含 t ( 1 ≤ t ≤ 1 0 3 t (1 \le t \le 10^3 t(1t103 - 测试用例数。

每个测试用例包含两个整数 n , k ( 1 ≤ k ≤ n ≤ 1 0 3 ) n,k(1 \le k \le n \le 10^3) n,k(1kn103) - a a a 的长度和 a a a 必须具有的有序的循环移位次数。

保证所有测试用例中 n n n 的总和不超过 1 0 3 10^3 103

输出描述

输出

为每个测试用例打印一行:

  • 如果存在符合要求的数组 a a a,则输出 n n n 个整数,代表 ; a 1 , a 2 , ⋯   , a n a_1,a_2,\cdots,a_n a1,a2,,an
  • 否则,输出 − 1 −1 1

如果有多个解决方案,则打印任意一个。

样例解释

在第一个测试案例中, a = [ 1 , 1 ] a=[1,1] a=[1,1] 满足 n = 2 , k = 2 n=2,k=2 n=2,k=2

a a a 的两个循环移位是 [ a 1 , a 2 ] [a_1,a_2] [a1,a2] [ a 2 , a 1 ] [a_2,a_1] [a2,a1],它们都是 [ 1 , 1 ] [1,1] [1,1] 且有序。

在第二个测试案例中, a = [ 69   420 , 69 , 420 ] a=[69\ 420,69,420] a=[69 420,69,420] 满足 n = 3 , k = 1 n=3,k=1 n=3,k=1

a a a 的三个循环移位分别是 [ a 1 , a 2 , a 3 ] , [ a 2 , a 3 , a 1 ] , [ a 3 , a 1 , a 2 ] [a_1,a_2,a_3],[a_2,a_3,a_1],[a_3,a_1,a_2] [a1,a2,a3],[a2,a3,a1],[a3,a1,a2],它们分别是 [ 69   420 , 69 , 420 ] , [ 69 , 420 , 69   420 ] [69\ 420,69,420],[69,420,69\ 420] [69 420,69,420],[69,420,69 420] [ 420 , 69   420 , 69 ] [420,69\ 420,69] [420,69 420,69]

只有 [ 69 , 420 , 69   420 ] [69,420,69\ 420] [69,420,69 420] 有序。

  • 26
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值