题意:

N个数,求第二长上升子序列的长度。

数据范围:

1. 1 <= T <= 100
2. 2 <= N <= 1000
3. 1 <= Ai <= 1 000 000 000

思路:

数据给的很暧昧,用n^2的算法可以过。故用n^2算法。只要在DP过程中记录得到f[i]是否只有一种方法即可。详看代码。

代码:

int T,n;
int a[1005],f[1005];
bool NOTalone[1005]; int main(){
//freopen("test.in","r", stdin);
cin>>T;
while(T--){
scanf("%d",&n);
rep(i,1,n) scanf("%d",&a[i]);
rep(i,1,n) f[i]=1;
mem(NOTalone,false);
rep(i,2,n){
rep(j,1,i-1) if(a[i]>a[j]){
if(f[j]+1>f[i]){
f[i]=f[j]+1;
NOTalone[i] = NOTalone[j];
}
else if(f[j]+1==f[i]){
NOTalone[i]=true;
}
}
} int t=f[1]; rep(i,2,n) t=max(t,f[i]);
bool NOT_ALONE=false;
int c=0;
rep(i,1,n) if(t==f[i]) ++c,NOT_ALONE|=NOTalone[i];
if(c>1) NOT_ALONE=true;
if(!NOT_ALONE)
cout<<t-1<<endl;
else
cout<<t<<endl;
}
//fclose(stdin);
}

最新文章

  1. nginx 服务器重启命令,关闭
  2. Android Studio 基本使用
  3. Java 名词
  4. 如何将maven项目导入MyEclipse
  5. Objective-C的对象模型
  6. bootstrap学习笔记&lt;六&gt;(表单二之按钮)
  7. 移动端 meta
  8. JQuery源码分析(六)
  9. Android 控件布局常用属性
  10. Zabbix-3.2.4实现微信(WeChat)告警
  11. HDFS读写过程
  12. Java值传递和引用传递
  13. 部署 Helm - 每天5分钟玩转 Docker 容器技术(162)
  14. java IO流全面总结
  15. 《linux内核设计与实现》第十八章
  16. div居中与div内容居中,不一样
  17. Ionic2开发环境搭建、项目创建调试与Android应用的打包、优化
  18. 人工智能_机器学习——pandas - 箱型图
  19. [leetcode]621. Task Scheduler任务调度
  20. java学习笔记2015-6-5

热门文章

  1. PHP的加密伪随机数生成器的使用
  2. 简单了解Phar代码打包工具的使用
  3. 手机访问pc网站自动跳转手机端网站PHP代码
  4. Jmeter系列(34)- Jmeter优化常识
  5. Jenkins持续交付实战演练
  6. 几分钟就能学会的Python虚拟环境教程
  7. String(char[] value, boolean share) {
  8. Feign 400错误引发的一系列问题
  9. 小白自制Linux开发板 三. Linux内核与文件系统移植
  10. 2020 年国内 Serverless 用户规模:阿里云占比第一,达 66%