zoukankan      html  css  js  c++  java
  • PAT L2-014【二分】

    思路:
    最后发现对当前列车比我大的编号的栈有没有就好了,所以开个vector存一下,然后二分一下vector找一下第一个比我大的数就好了

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    const int N=1e5+10;
    int n,a[N];
    vector<int>q;
    
    int main()
    {
    	scanf("%d",&n);
    	for(int i=0;i<n;i++) scanf("%d",&a[i]);
    	q.clear();
    	int ans=0;
    	for(int i=0;i<n;i++)
    	{
    		int sz=q.size();
    		if(!sz)
    		{
    			q.push_back(a[i]);
    			ans++;
    		}
    		else
    		{
    			vector<int>::iterator e=upper_bound(q.begin(),q.end(),a[i]);
    			if(e==q.end())
    			{
    				q.push_back(a[i]);
    				ans++;
    			}
    			else
    			{
    				int d=e-q.begin();
    				q[d]=a[i];
    			}
    		}
    	}
    	
    	printf("%d
    ",ans);
    	return 0;
    }
    
    


  • 相关阅读:
    javaSE基础(三)
    javaSE基础(二)
    javaSE基础(一)
    文件目录爬虫
    前自增 与 后自增
    查找 与 排序 总结
    python 使用 grpc
    python3.7 安装 uwsgi
    go
    go
  • 原文地址:https://www.cnblogs.com/keyboarder-zsq/p/6777348.html
Copyright © 2011-2022 走看看