1 条题解

  • 3
    @ 2022-6-29 20:07:46
    #pragma GCC optimize(3,"Ofast","inline")
    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    inline int read()
    {
    	char ch=getchar();
    	int x=0,m=1;
    	while(!isdigit(ch)){
    		if (ch=='-') m=-1;
    		ch=getchar();
    	}
    	while(isdigit(ch)){
    		x=x*10+ch-'0';
    		ch=getchar();
    	}
    	return x*m;
    }
    inline void write(int x)
    {
    	if (x<0) putchar('-'),x=-x;
    	if (x>=10) write(x/10);
    	putchar(x%10+'0');
    }
    int n,w[1010];
    struct Node{
    	int l,w;
    }a[1010];
    inline bool cmp(Node x,Node y)
    {
    	return x.l < y.l || ( x.l == y.l && x.w < y.w );
    }
    signed main()
    {
    	n=read();
    	for (int i=1;i<=n;i++) a[i].l=read(),a[i].w=read();
    	sort(a+1,a+1+n,cmp);
    	int k=1;
    	w[1]=a[1].w;
    	for (int i=2;i<=n;i++){
    		int p=0;
    		for (int j=1;j<=k;j++){
    			if (w[j]<=a[i].w){
    				if (!p) p=j;
    				else if (w[j]>=w[p]) p=j;
    			}
    		}
    		if (!p) w[++k]=a[i].w;
    		else w[p]=a[i].w;
    	}
    	write(k);
    	return 0;
    }
    

    自行参考

    • 1

    信息

    ID
    101
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    (无)
    递交数
    103
    已通过
    36
    上传者