核心贪心:在从左到右构造答案时,每一步决定放当前剩余数中 最大 或 最小 的一个。
于是每一步贪心选择:
对于一个长度为 n 的数组 a= { a1,a2,...,an } ,如果 (i,j) 满足 1≤i<j≤n 且 ai>aj ,则 (i,j) 为逆序对。
牛牛有一个长度为 n 的排列 p= { 1,2,3,...,n } ,现在牛牛想重新排列 p 的顺序使得 p 中恰好包含 k 对逆序对,请你写一个程序帮牛牛解决该问题。
一行输入两个正整数 n,k 。
1≤n≤1000,0≤k≤2n(n−1)
一行输出由 n 个空格隔开的正整数 p1,p2,...,pn 表示重新排列后的排列 p 。
如果有多个答案,输出任意一个合法的即可。
输入
3 1
输出
1 3 2
说明
显然 {1,3,2 } 有 1 个逆序对 (3,2) ,同时 { 2,1,3 } 也满足要求。
输入
5 0
输出
1 2 3 4 5
说明
逆序对为 0 的排列只有这一个。