• 心急的C小加《贪心》


    题目http://115.159.40.116/contest_show.php?cid=66#problem/B

    其实这个题就是求有多少个子序列;

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    struct node
    {
        int len;
        int wei;
    } num[5005];
    int cmp(node x,node y)
    {
        if(x.len==y.len)
            return x.wei<y.wei;
        else
            return x.len<y.len;
    }
    int main()
    {
        int q[5005];
        memset(q,0,sizeof(q));
        int t;
        scanf("%d",&t);
        while(t--)
        {
            int n;
            scanf("%d",&n);
            int i,j;
            for(i=0; i<n; i++)
            {
                scanf("%d%d",&num[i].len,&num[i].wei);
            }
            sort(num,num+n,cmp);


            q[0]=num[0].wei;
            int c=1;
            for(i=1; i<n; i++)
            {
                for(j=0; j<c; j++)
                {
                    if(num[i].wei>=q[j])//当下一个数大于上一个数时,更新q[i],和下一数进行比较;
                    {
                        q[j]=num[i].wei;//不是在q[0]更新,注意
                        break;
                    }
                }
                if(j>=c)//如果遇到比上一个数小的,开一个新的子序列,c++;
                {
                    q[j]=num[i].wei;
                    c++;
                }
            }
            printf("%d ",c);
        }
        return 0;
    }

    "No regrets."
  • 相关阅读:
    Python基础之 一 字典(dict)
    python基础之-字符串
    Python基础之 一列表
    Python基础之 一 补充
    python基础之-数据类型
    python之模块随笔记-sys
    python之练习-三层菜单
    Python基础之 二
    SQL Server 数据类型
    SQLServer视图
  • 原文地址:https://www.cnblogs.com/zxy160/p/7215190.html
Copyright © 2020-2023  润新知