-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path1626. 无矛盾的最佳球队.cpp
More file actions
24 lines (23 loc) · 875 Bytes
/
Copy path1626. 无矛盾的最佳球队.cpp
File metadata and controls
24 lines (23 loc) · 875 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution {
public:
int solve(int prev,int curr,vector<vector<int>>&pair,vector<vector<int>>&dp){
if(curr==pair.size()) return 0;
int include=0,exclude=0;
if(dp[prev+1][curr]!=-1) return dp[prev+1][curr];
if(prev==-1 || pair[curr][1]>=pair[prev][1]){
include+=pair[curr][1]+solve(curr,curr+1,pair,dp);
}
exclude=solve(prev,curr+1,pair,dp);
return dp[prev+1][curr]=max(include,exclude);
}
int bestTeamScore(vector<int>& scores, vector<int>& ages) {
vector<vector<int>>pair;
vector<vector<int>>dp(scores.size()+1,vector<int>(scores.size(),-1));
for(int i=0;i<scores.size();i++){
pair.push_back({ages[i],scores[i]});
}
sort(pair.begin(),pair.end());
int prev=-1,curr=0;
return solve(prev,curr,pair,dp);
}
};