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(); } }