就是那个用 DilworthDilworthDilworth 定理优化到 O(n logn)O(n \ \mathrm{log}n)O(n logn) 的算法
for(int i = 2; i <= n; i ++) { if(f[len] < a[i]) f[++len] = a[i]; else *lower_bound(f+1, f+1+len, a[i]) = a[i]; }
求的是 lenlenlen,然而从代码来看, lenlenlen 的变化只和 f[len]f[len]f[len] 有关,那为什么下面的 else 还要修改 f[len]f[len]f[len] 以前的数值呢
else