Java hdoj 1027 Ignatius and the Princess II

来源:互联网 发布:淘宝运营培训费用 编辑:程序博客网 时间:2024/04/28 00:47
import java.util.*;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);while (in.hasNext()) {int N = in.nextInt();int M = in.nextInt();int[] a = new int[N];for (int i = 0; i < a.length; i++) a[i] = i + 1;for (int i = 1; i < M; i++)nextPermutation(a);System.out.print(a[0]);for (int i = 1; i < a.length; i++)System.out.print(" " + a[i]);System.out.println();}}public static void nextPermutation(int[] a) {int llr = 0;for (int i = a.length - 1; i > 0; i--)if (a[i - 1] < a[i]) {llr = i - 1;break;}int min = llr + 1;for (int i = llr + 1; i < a.length; i++)if (a[i] > a[llr] && a[i] < a[min])min = i;swap(llr, min, a);reserve(llr + 1, a);}public static void swap(int i, int j, int[] a) {int temp = a[i];a[i] = a[j];a[j] = temp;}public static void reserve(int i, int[] a) {for (int j = i, k = 0; j < (i + a.length) / 2; j++, k++) swap(j, a.length - 1 - k, a);}}


0 0
原创粉丝点击