hdu 5087 Revenge of LIS II
来源:互联网 发布:大数据时代的特点 编辑:程序博客网 时间:2024/06/06 01:48
求一个数组的不同子串中的“次大”LIS,但是1 4 3答案是2,因为"1 4"和"1 3"为最大的两个子串。
代码1:
代码1:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int a[1005],f[1005],p[1005];int main(){ int T,n; scanf("%d",&T); while(T--) { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); a[0]=0; f[0]=0; for(int i=1;i<=n;i++) { int k=0; for(int j=1;j<i;j++) if(a[j]<a[i] && f[j]>=f[k]) k=j; f[i]=f[k]+1; p[i]=k; } int mmax=0,m; for(int i=1;i<=n;i++) if(f[i]>mmax) mmax=f[i]; int ok=0,cnt=0; for(int i=1;i<=n;i++) if(f[i]==mmax){ cnt++; if(cnt>1) {ok=1;break;} m=i; while(m && !ok){ int x=a[m]; m=p[m]; for(int i=1;i<m;i++) if(f[i]==f[m] && a[i]<x) {ok=1;break;} } if(ok) break; } // printf("ok=%d\n",ok); if(ok) printf("%d\n",mmax); else printf("%d\n",mmax-1); } return 0;}/*33 1 2*/
代码2:
#include <iostream>#include<cstdio>#include<cstring>using namespace std;int a[1005],f[1005],c[1005];int main(){ int T,n,ok,mmax,sum; scanf("%d",&T); while(T--) { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=n;i++) { f[i]=c[i]=1; // 初始化都是一条路 for(int j=1;j<i;j++) { if(a[j]>=a[i]) continue; //a[i]>a[j] if(f[j]+1>f[i]){ f[i]=f[j]+1; c[i]=c[j]; }else if(f[j]+1==f[i]) c[i]=2; } } mmax=sum=0; for(int i=1;i<=n;i++) if(f[i]>mmax) mmax=f[i]; for(int i=1;i<=n;i++) if(f[i]==mmax) sum+=c[i]; printf("%d\n",sum>1?mmax:mmax-1); } return 0;}
0 0
- Revenge of LIS II (hdu 5087 LIS)
- hdu 5087 Revenge of LIS II(LIS)
- hdu 5087 Revenge of LIS II dp
- 【DP】 HDU 5087 Revenge of LIS II
- HDU - 5087 Revenge of LIS II
- hdu 5087 Revenge of LIS II
- hdu 5087 Revenge of LIS II
- Revenge of LIS II(HDU 5087)
- HDU 5087 Revenge of LIS II
- hdu 5087 Revenge of LIS II ( LIS ,第二长子序列)
- hdu 5087 Revenge of LIS II(LIS,思路)
- HDU 5087 Revenge of LIS II(次长上升子序列)
- hdu 5087 Revenge of LIS II(BestCoder Round #16)
- hdu 5087 Revenge of LIS II lcs变形
- HDU 5078 Revenge of LIS II(dp LIS)
- HDOJ 5087 Revenge of LIS II DP
- HDOJ-5087-Revenge of LIS II
- HDU5087 Revenge of LIS II
- 怎么用QQ截取多个下拉菜单的图
- 【原创】《Linux高级程序设计》杨宗德著 - 进程管理与程序开发 - 回收进程用户/内核资源
- 使用Scroller类实现图片的循环浏览
- 关于编程规范的思考
- POJ2125 Destroying The Graph
- hdu 5087 Revenge of LIS II
- 6174问题
- 关于调用帧中的栈
- CYGWIN环境搭建及openvpn编译
- Android - Manifest Merger的简介
- 之三:linux的页式内存管理
- ubuntu12.04 64安装jdk1.6
- CentOS + Asterisk + FreePBX ——支持蓝牙,AMR-NB audio codec
- java中抽象类和接口的区别