Description

一年一度的哈理工选美大赛开始了.来自各个院系的N个美女们都在一起排成一排,然后从左到右给他们标号(1-N),评委叫兽开始观摩,由于身高高低都不同, 叫兽想从中选出尽可能多的人使得他们的身高从左到右依次递增,你能帮助叫兽吗?

Input

输入数据第一行一个数据表示美女的个数N(0<N<100)

接下来有N个数据表示1-N标号的美女的身高,身高范围都在0-180之内

当N=0时候输入结束

Output

按照样例输出,首先The number is N:N是选出最多美女个数,然后后面输出N个数,代表选出美女的标号,从左到右依次输出.

题目保证答案唯一

Sample Input

3

2 1 2

3

1 2 3

0

Sample Output

The number is 2: 2 3

The number is 3: 1 2 3

想说,这道题目,求LIS不是问题,纠结在于记录路径,搞这个搞了半天,结果还是去看了大牛的博客T T,只能说,学习了。。。

 #include <cstdio>
#include <algorithm>
#include <cstring>
#include <iostream>
#include <stack> using namespace std;
const int MAX_SIZE = ;
int dp[MAX_SIZE];
int vis[MAX_SIZE];
int strat; int LIS(int arr[], int n)
{
memset(vis, , sizeof(vis));
for(int i = ; i <= n; ++i)
{
dp[i] = ;
} int ans = ;
dp[] = ; for(int i = ; i <= n; ++i)
{
ans = dp[i];
for(int j = ; j < i; ++j)
{
if(arr[i] > arr[j] && dp[j] > ans)
{
ans = dp[j];
vis[i] = j;
}
}
dp[i] = ans + ;
}
ans = ;
for(int i = ; i <= n; ++i)
{
if(dp[i] > ans)
{
ans = dp[i];
strat = i;
}
} return ans;
} ///dfs去找路径
void path(int strat)
{
if(strat != )
{
path(vis[strat]);
printf(" %d", strat);
}
} int main()
{
int n;
int arr[MAX_SIZE];
stack<int > s; while(~scanf("%d", &n) && n)
{
for(int i = ; i <= n; ++i)
{
scanf("%d", arr + i);
}
int ans = LIS(arr, n);
printf("The number is %d:",ans); path(strat);
puts("");
}
return ;
}

最新文章

  1. MVP ComCamp &amp; GCR MVP Openday 2014
  2. android下面使用SurfaceView+ mediaPlayer播放视频
  3. CATransition-转场动画
  4. 解析客户端IP
  5. 【洛谷P1969】积木大赛
  6. CentOS6.5_Nginx1.40_Php5.57_MySQL5.5.35编译安装全记录
  7. 认识变量------JAVA
  8. 【python自动化第十一篇】
  9. 转:misc_register、 register_chrdev 的区别总结
  10. Java中抽象类和接口区别
  11. 从零开始打jar包
  12. 利用光场进行深度图估计(Depth Estimation)算法之一——聚焦算法
  13. Mesos源码分析(11): Mesos-Master接收到launchTasks消息
  14. Java文件类型工具类
  15. 【JAVA集合框架一 】java集合框架官方介绍 Collections Framework Overview 集合框架总览 翻译 javase8 集合官方文档中文版
  16. 理解根目录,classpath, getClass().getResourceAsStream和getClass().getClassLoader().getResourceAsStream的区别
  17. Testlink解决大用例导入问题
  18. springboot项目线程使用2
  19. 51nod 1413 权势二进制
  20. nginx反向代理解决wechat图片问题

热门文章

  1. cxf 调用 webservice服务时传递 服务器验证需要的用户名密码
  2. u盘安装Fedora23
  3. C++计算几何库
  4. 22章、Java集合框架习题
  5. ActiveMQ支持的传输协议
  6. 如何在网页中添加“QQ交流”
  7. jenkins使用简记
  8. 【Tomcat】tomcat报连接超时错误
  9. 第2月第25天 BlocksKit
  10. js跨域问题