200分求大佬优化
查看原帖
200分求大佬优化
877062
chaizechen_czc楼主2023/8/21 20:42
#include<stdio.h>
#include<string.h>
#define Max(a,b) (a>b?a:b)
int a[100005];
int dp[100005];
int main(int argc, char** argv)
{
    int w=1;
    while(scanf("%d",&a[w++])!=EOF);
    w-=2;
    int ans=0,nss=0;
    int cnt;
    cnt=1,dp[1]=a[1];
    for(int i=2;i<=w;i++)
    {
        if(dp[cnt]>=a[i])
            dp[++cnt]=a[i];
        else
            for(int j=1;1;j++)
            {
                if(dp[j]<a[i])
                {
                    dp[j]=a[i];
                    break;
                }
            }
    }
    printf("%d\n",cnt);
    cnt=1,dp[1]=a[1];
    for(int i=2;i<=w;i++)
    {
        if(dp[cnt]<a[i])
            dp[++cnt]=a[i];
        else
            for(int j=1;1;j++)
            {
                if(dp[j]>=a[i])
                {
                    dp[j]=a[i];
                    break;
                }
            }
    }
    printf("%d\n",cnt);
    return 0;
}
2023/8/21 20:42
加载中...