本文主要是介绍oj acm 1027,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原题链接
求1-n的第m个最小序列。
参考C++的next_permutation方法
博客链接 http://www.cnblogs.com/eudiwffe/p/6260699.html
寻找seq下一序列:
从后向前找到第一个a[i-1]<a[i];
从[i,end]找到第一个满足a[k]>a[i-1]的k值。由于[j,end]是降序的,所以是大于a[i-1]的最小值。
交换a[i-1],a[k]
将[i,end]倒序,因为[i,end]是降序的,所以倒置,从而得到当前序列的下一序列。
import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner;public class Main_1027 {public static void main(String[] args) throws FileNotFoundException {Scanner in = new Scanner(System.in);while (in.hasNext()) {int n = in.nextInt();int m = in.nextInt();int[] seq = new int[n + 1];for (int i = 1; i <= n; i++) {
这篇关于oj acm 1027的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!