【2024东区信息学小学组】3.刷题顺序(prob)
描述
为了在某谷上挑战 Chen,不知何时燃起了雄心壮志的 Jimmy 在某谷上准备好了 N 道题,打算组建一次正式的比赛,从而把 Chen 难倒。可是,他却在组建比赛时遇到了技术难题。
为了更好地照顾不同层次的参赛者,Jimmy 所出的每道题都有各自的难度,具体来说,第 i 道题的难度为 di。Jimmy 把题按顺序添加上去后,发现他忘了考虑每道题的难度——Jimmy 当然是希望简单题在前、难题在后的,也就是题应该按难度从小到大排序,因此他需要调整一下题的顺序。可是某谷的系统刚好出了问题,只允许他每次对两道位置间隔为 K 的题交换位置,例如第 1 题和第 K + 1 题、第 2 题和第 K + 2 题,依次类推。
Jimmy 可不想把辛辛苦苦加好的题删掉。请你告诉他,经过次数不限的交换位置后(当然也可以不做交换),题难度能否做到从小到大排好序。
输入描述
本题有多组数据。
第一行一个正整数 T ,表示数组的组数。接下来一共有 2 × T 行,为每组数据的具体内容。
每组数据的第一行,为两个正整数 N, K,表示一共有 N 道问题,每次交换只能对两道位置间隔为 K 的问题交换位置。
每组数据的第二行,为 N 个正整数 d1~dN ,表示每道问题的难度。
输出描述
输出一共 T 行。对于每组数据,如果最终能做到题按难度从小到大排序,输出一行
yes,否则输出一行 no。
用例输入 1
3
5 2
3 4 1 3 4
5 3
3 4 1 3 4
7 5
1 2 3 4 5 5 10
用例输出 1
yes
no
yes
提示
样例中一共有三组数据:
1.第一组数据中 K = 2,意味着 Jimmy 每次只能交换两道位置间隔为 2 的题。Jimmy可以先交换第 1 题和第 3 题,交换后的题难度为 1 4 3 3 4。然后再交换第 2 题和第 4 题,交换后的题难度为 1 3 3 4 4,刚好是从小到大排序的,因此输出一行 yes;
2.第二组数据中,不存在任何操作方案,使得题按难度从小到大排序,因此输出一行
no;
3.第三组数据中,题本来就是按照难度从小到大排序的,Jimmy 不用做任何交换操作,因此输出一行 yes。
【测试点约束】
对于 100% 的数据,满足 1 ≤ T ≤ 5,1 ≤ N ≤ 5000,1 ≤ K < N ,1 ≤ Di ≤ 109。