传送门:
解题思路:
这是LIS的变形。用O(n^2)的方法来解决这道题。
1 #include2 #include 3 #include 4 #include 5 using namespace std; 6 7 const int MAXN=100000; 8 const int INF=1<<30; 9 int dp[MAXN];10 11 struct node{12 int x,y,w;13 bool operator <(const node &rhs)const{14 if(x!=rhs.x)15 return x S[j].x&&S[i].y>S[j].y)36 dp[i]=max(dp[i],dp[j]+S[i].w);37 res=max(dp[i],res);38 }39 return res;40 }41 42 int main(){43 int n;44 int iCase=0;45 while(scanf("%d",&n)!=EOF&&n){46 tot=0;47 for(int i=0;i