Tyvj1209

来源:互联网 发布:晒书房软件 编辑:程序博客网 时间:2024/06/08 17:52

题目链接

分析:
发现自己连拦截导弹都不能5min切掉了
看来原来学的忘得差不多了

第一问就是最长不上升序列
第二问是最长上升子序列

tip

注意n=1的情况

这里写代码片#include<cstdio>#include<cstring>#include<iostream>using namespace std;char s[1010];int g[30],a[30],f[30],tot=0,tt=0;void doit(){    int i,j,ans1=0,mx1,mx2,k;    for (i=1;i<=tot;i++)    {        mx1=0;        mx2=0;        for (j=1;j<i;j++)            if (a[j]>=a[i])              mx1=max(mx1,f[j]);            else mx2=max(mx2,g[j]);        f[i]=mx1+1;        g[i]=mx2+1;        ans1=max(ans1,f[i]);        tt=max(tt,g[i]);    }    printf("%d,%d",ans1,tt-1);}int main(){    scanf("%s",&s);    int num=0;    for (int i=0;i<strlen(s);i++)    {        if (s[i]>='0'&&s[i]<='9') num=num*10+s[i]-'0';        else a[++tot]=num,num=0;     }    a[++tot]=num;    doit();    return 0;}
原创粉丝点击