Java教程

XGD算法设计上机考试(补充)

本文主要是介绍XGD算法设计上机考试(补充),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

//最长公共子序列

char a[200],b[200];
int c[200][200]={},n,m;
int build()
{
    int i,j;
    for(j=1;j<=n;j++)
    {
        for(i=1;i<=m;i++)
        {
            if(a[j-1]==b[i-1]){c[j][i]=c[j-1][i-1]+1;}
            else if(c[j-1][i]>=c[j][i-1]) c[j][i]=c[j-1][i];
            else c[j][i]=c[j][i-1];
        }
    }
    return c[n][m];
}
int main()
{
    cin>>a>>b;
    n=strlen(a);
    m=strlen(b);
    cout<<build()<<endl;
    return 0;
}




//最大连续子序列和

int a[1000];
int s[1000],n;

int main()
{
    int i,max1=0;
    cin>>n;
    for(i=1;i<=n;i++) cin>>a[i];
    s[0]=0;
    for(i=1;i<=n;i++)
    {
        if(s[i-1]+a[i]>=a[i]) s[i]=a[i]+s[i-1];
        else s[i]=a[i];
    }
    for(i=1;i<=n;i++)
    {
        if(s[i]>max1) max1=s[i];
    }
    cout<<max1<<endl;
    return 0;
}



//活动安排

int s[1000],f[1000];
int main()
{
    int i,j,n,cnt=1;
    cin>>n;
    for(i=0;i<n;i++)
    {
        cin>>s[i]>>f[i];
    }
    for(i=0;i<n;i++)
    {
        for(j=i;j<n;j++)
        {
            if(f[i]>f[j])
            {
                swap(s[i],s[j]);
                swap(f[i],f[j]);

            }
        }
    }
    j=0;
    for(i=1;i<n;i++)
    {
        if(s[i]>=f[j])
        {
            j=i;
            cnt++;
        }
    }
    cout<<cnt<<endl;
    return 0;
}

这篇关于XGD算法设计上机考试(补充)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!