数组开小点!
数组开小点!
数组开小点!
不然会MLE。想去打出题人,不知道地址。有的大佬用DP,蒟蒻只会用sort排一遍,然后去看是否满足要求....
方程:
dp[i]=max(dp[j]+1,dp[i])。
代码:
#include<bits/stdc++.h> using namespace std; struct str { int l,r; }a[11000]; int n; int dp[11000]={0},ans; bool cmp(str x,str y) { if(x.l==y.l) return x.r<y.r;//如果第一个数相等再排第二个 return x.l<y.l;//先排第一个数 } int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>a[i].l>>a[i].r; } sort(a+1,a+1+n,cmp);//排序 for(int i=2;i<=n;i++) { for(int j=1;j<i;j++) { if(a[j].r>a[i].r) { dp[i]=max(dp[j]+1,dp[i]);//找要被分成几个 } } ans=max(dp[i],ans); } cout<<ans+1;//输出 }
动态规划...应该算吧
原文地址:https://www.cnblogs.com/dai-jia-ye/p/9354886.html
时间: 2024-11-13 08:53:41