4 条题解

  • 1
    @ 2024-11-23 12:22:31

    动态规划求解

    #include<bits/stdc++.h>
    using namespace std;
    int const N=1e5+10;
    struct node
    {
    	int st,ed;
    }q[N];
    int cmp(node x,node y)
    {
    	if(x.st==y.st) return x.ed<y.ed;
    	return x.st<y.st;
    }
    int dp[N];
    int main()
    {
    	int n;
    	cin>>n;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>q[i].st>>q[i].ed;
    	}
    	sort(q+1,q+1+n,cmp);
    	for(int i=1;i<=n;i++)
    	{
    		dp[i]=1;
    		for(int j=i-1;j>=1;j--)
    		{
    			if(q[j].ed<=q[i].st) dp[i]=max(dp[i],dp[j]+1);
    		}
    	}
    	int ans=0;
    	for(int i=1;i<=n;i++)
    	{
    		ans=max(ans,dp[i]);
    	}
    	cout<<ans<<endl;
    	return 0;
    }
    

    信息

    ID
    955
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    (无)
    递交数
    208
    已通过
    25
    上传者