hdu1257最少攔截系統

XiaohuangTX發表於2024-06-07

Dilworth定理通俗地講就是對於一個偏序集,最少鏈劃分等於最長反鏈長度。

通俗點就是一個數列最少的不上升(<=)子序列的條數等於該數列最長上升(>)子序列的長度

就是求最長有序子序列

package bag;

import java.util.Arrays;
import java.util.Scanner;

public class hdu1257 {

    public static void main(String[] args) {
        // TODO 自動生成的方法存根
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int n = sc.nextInt();
            int[] xx = new int[n];
            int[] res = new int[n];
            for (int i = 0; i < n; i++) {
                xx[i] = sc.nextInt();                
            }
            for (int i = 0; i < n; i++) {
                for (int j = 0; j < i; j++) {
                    if (xx[i] > xx[j]) {
                        if (res[j]+1 > res[i]) {
                            res[i] = res[j]+1;
                        }
                    }                    
                }
                
            }
            Arrays.sort(res);
            System.out.println(res[n-1]+1);
        }
        sc.close();
    }
}

相關文章