• HURST 1116:选美大赛(LIS+路径输出)


    选美大赛
    Time Limit: 1000 MS Memory Limit: 65536 K
    Total Submit: 1099(318 users) Total Accepted: 349(252 users) Rating:  Special Judge: No
    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

    #include <stdio.h>
    #include <string.h>
    #include <iostream>
    #include <algorithm>
    #include <math.h>
    #include <limits.h>
    #include <map>
    #include <stack>
    #include <queue>
    #include <vector>
    #include <set>
    #include <string>
    #define ll long long
    #define ms(a) memset(a,0,sizeof(a))
    #define pi acos(-1.0)
    #define INF 0x3f3f3f3f
    const double E=exp(1);
    const int maxn=1e6+10;
    using namespace std;
    int a[maxn];
    int dp[maxn];
    int vis[maxn];
    int DP[maxn];
    int main(int argc, char const *argv[])
    {
    	ios::sync_with_stdio(false);
    	int n;
    	while(cin>>n&&n)
    	{	
    		ms(dp);
    		ms(DP);
    		ms(vis);
    		for(int i=0;i<n;i++)
    			cin>>a[i];
    		int ans=INT_MIN;
    		int res;
    		for(int i=0;i<n;i++)
    		{
    			dp[i]=1;
    			for(int j=0;j<i;j++)
    			{
    				if(a[i]>a[j]&&dp[i]<dp[j]+1)
    				{
    					dp[i]=dp[j]+1;
    					vis[i]=j;
    				}
    			}
    			if(dp[i]>ans)
    			{
    				ans=dp[i];
    				res=i;
    			}
    		}
    		int ress=res;
    		int i=0;
    		while(1)
    		{
    			DP[i++]=vis[ress];
    			ress=vis[ress];
    			if(dp[ress]==1)
    				break;
    		}
    		cout<<"The number is "<<ans<<":";
    		for(int j=i-1;j>=0;j--)
    			cout<<" "<<DP[j]+1;
    		cout<<" "<<res+1<<endl;
    	}	
    	return 0;
    }
    
  • 相关阅读:
    图解CSS3----1-关系选择器
    HTML5----热区(在图片img上第一超链接选区)
    Javascript----练习二(运算符)
    Javascript----练习一(变量)
    PHP表单
    maven
    Docker
    PHP字符串
    面向对象思想的核心概念
    虚方法
  • 原文地址:https://www.cnblogs.com/Friends-A/p/10324404.html
Copyright © 2020-2023  润新知