codevs1044:dilworth定理
2015-01-25 23:40
162 查看
http://www.cnblogs.com/submarine/archive/2011/08/03/2126423.html
dilworth定理的介绍
题目大意:
求一个序列的lds
同时找出这个序列最少用几个下降子序列覆盖
题解:
第一问当然非常简单,第二问不会了。。准备去搬最小路径覆盖模板
结果百度了一下发现由dilworth定理可知答案就是 lis的长度。。。跪
代码:
dilworth定理的介绍
题目大意:
求一个序列的lds
同时找出这个序列最少用几个下降子序列覆盖
题解:
第一问当然非常简单,第二问不会了。。准备去搬最小路径覆盖模板
结果百度了一下发现由dilworth定理可知答案就是 lis的长度。。。跪
代码:
#include<stdio.h> #include<string> #include<string.h> #include<algorithm> #include<iostream> using namespace std; int dp[30010]; int a[30010]; int n; int LIS() { memset(dp,0,sizeof(dp)); int k=0; dp[k++]=a[0]; for(int i=1; i<n; i++) { if(a[i]>=dp[k-1]) { dp[k++]=a[i]; continue; } int t=lower_bound(dp,dp+k,a[i])-dp; dp[t]=a[i]; } return k; } int main() { n=0; while(scanf("%d",a+(n++))!=EOF); n--; int ans2=LIS(); reverse(a,a+n); int ans1=LIS(); cout<<ans1<<endl<<ans2<<endl; return 0; }
相关文章推荐
- 【codevs1044】导弹拦截问题与Dilworth定理
- Codevs 1702 素数判定 2(Fermat定理)
- 中国余数定理 1(codevs 3040)
- code[vs] 1044拦截导弹(最长递减+递增子序列)
- codevs 拦截导弹 1044
- 【codevs3990】中国余数定理2 中国剩余定理
- 【codevs3990】中国余数定理2
- CodeVS3990:中国余数定理 2 (CRT)
- codevs 拦截导弹 1044
- codevs 1044 拦截导弹 1999年NOIP全国联赛提高组
- codevs3990——中国余数定理:一元模线型方程组
- 【日常学习】【线性DP】codevs1044 拦截导弹题解
- BZOJ_P1951&Codevs_P1830 [SDOI2010]古代猪文(Lucas定理+扩展欧几里得+中国剩余定理)
- CODE(VS) 1044 导弹拦截 (判断最长递增和最长递减子序列)
- 贪心算法:Codevs 1044 拦截导弹
- 【模板】【codevs3990】中国剩余定理
- [codevs4888零件分组][codevs1044拦截导弹]
- codevs1044 拦截导弹(最长不下降子序列dp)
- CodeVS3040 中国余数定理 1
- Code[VS]1044拦截导弹