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

    1045 Favorite Color Stripe

    先把需要的字符按照输入的顺序赋予权值,然后去掉不需要的字符,再求最长不递减序列的长度就可以了。

    #include<cmath>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<iostream>
    #include<string>
    #include<stack>
    #include<queue>
    #include<map>
    #include<set>
    #include<sstream>
    typedef long long ll;
    using namespace std;
    const double eps=1e-6;
    const int inf=0x3f3f3f3f;
    const int MAXN=1E4+7;
    int n, m, l;
    int w[207], squ[MAXN];
    
    int main()
    {
    	scanf("%d%d", &n, &m);
    	int t;
    	for(int i=0; i<m; i++){
    		scanf("%d", &t);
    		w[t] = i+1;
    	}
    	scanf("%d", &l);
    	int len = 0;
    	for(int i=0; i<l; i++){
    		scanf("%d", &t);
    		if(w[t]>0)
    			squ[len++]=w[t];
    	}
    	l = len;
    	len = 1;
    	for(int i=1; i<l; i++){
    		if(squ[i] >= squ[len-1]) //注意是不递减的序列
    			squ[len++] = squ[i];
    		else{
                //不递减意味着应该找到一个大于它的位置
    			int j=upper_bound(squ, squ+len, squ[i])-squ; 
    			squ[j] = squ[i];
    		}
    	}
    	printf("%d
    ", len);
    	
    	return 0;
    }
    
    欢迎评论交流!
  • 相关阅读:
    GCD HDU
    Finding Lines UVALive
    Chinese Mahjong UVA
    DNA Evolution CodeForces
    String Reconstruction (并查集)
    Number Cutting Game HDU
    Paint the Wall ZOJ
    Star sky CodeForces
    Haunted Graveyard ZOJ
    GuGuFishtion HDU
  • 原文地址:https://www.cnblogs.com/alking1001/p/14526062.html
Copyright © 2011-2022 走看看