zoukankan      html  css  js  c++  java
  • [pat]1045 Favorite Color Stripe

    1.用一个数组里面存储喜爱数字的值来区分数字是不是喜爱,以及值的大小顺序,用vector循环删除a数组中不是喜爱的元素,这里it=erase()之后it自动指向下一个元素,由于循环每次还要自增1,所以要加上it--。

    2.然后就是写dp来寻找最长的序列,序列可以不是连续的,也就是并不是所有的喜爱数字都要选取。

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int n;
        scanf("%d", &n);
        vector<int>p(n+1, -1);
        int m;
        int i;
        scanf("%d", &m);
        for (i = 0; i < m; i++)
        {
            int k;
            scanf("%d", &k);
            p[k] = i;
        }
        int l;
        scanf("%d", &l);
        vector<int>a(l, -1);
        for (i = 0; i < l; i++)
        {
            scanf("%d", &a[i]);
        }
        vector<int>::iterator it = a.begin();
        for (; it != a.end(); it++)
        {
            if (p[*it]<0)
            {
                it=a.erase(it);//erase()删除的用法.
                it--;
            }
        }
        vector<int>dp(a.size(), 1);
        int j;
        int ans = -1;
        for (i = 0; i < a.size(); i++)
        {
            for (j = 0; j < i; j++)
            {
                if (p[a[i]]>=p[a[j]] && dp[j]+1>dp[i])
                    dp[i] = dp[j] + 1;
            }
            ans = max(ans, dp[i]);
        }
        printf("%d
    ", ans);
    }
  • 相关阅读:
    访问控制模型+强制访问控制
    防火墙体系结构
    信息安全工程师手记
    关于PHPSESSIONID的一些发现
    中级测评师10-物联网
    WAPI学习记录
    1. Jenkins 入门使用
    Springboot druid监控配置
    Springboot 添加数据源报错
    mysql function 查询子级机构
  • 原文地址:https://www.cnblogs.com/legendcong/p/9192593.html
Copyright © 2011-2022 走看看