HLG1116-选美大赛
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,只能说,学习了。。。

1 #include <cstdio> 2 #include <algorithm> 3 #include <cstring> 4 #include <iostream> 5 #include <stack> 6 7 using namespace std; 8 const int MAX_SIZE = 1000; 9 int dp[MAX_SIZE]; 10 int vis[MAX_SIZE]; 11 int strat; 12 13 int LIS(int arr[], int n) 14 { 15 memset(vis, 0, sizeof(vis)); 16 for(int i = 1; i <= n; ++i) 17 { 18 dp[i] = 0; 19 } 20 21 int ans = 0; 22 dp[1] = 1; 23 24 for(int i = 2; i <= n; ++i) 25 { 26 ans = dp[i]; 27 for(int j = 1; j < i; ++j) 28 { 29 if(arr[i] > arr[j] && dp[j] > ans) 30 { 31 ans = dp[j]; 32 vis[i] = j; 33 } 34 } 35 dp[i] = ans + 1; 36 } 37 ans = 0; 38 for(int i = 1; i <= n; ++i) 39 { 40 if(dp[i] > ans) 41 { 42 ans = dp[i]; 43 strat = i; 44 } 45 } 46 47 return ans; 48 } 49 50 ///dfs去找路径 51 void path(int strat) 52 { 53 if(strat != 0) 54 { 55 path(vis[strat]); 56 printf(" %d", strat); 57 } 58 } 59 60 int main() 61 { 62 int n; 63 int arr[MAX_SIZE]; 64 stack<int > s; 65 66 while(~scanf("%d", &n) && n) 67 { 68 for(int i = 1; i <= n; ++i) 69 { 70 scanf("%d", arr + i); 71 } 72 int ans = LIS(arr, n); 73 printf("The number is %d:",ans); 74 75 path(strat); 76 puts(""); 77 } 78 return 0; 79 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具