题解
2025-08-06 09:04:58
发布于:浙江
5阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int m,n,dp[100001],c[100001],mx,x,z,v;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++){
cin>>x;
c[x]++;
mx=max(mx,x);
if(i==1)z=x;
if(i==2)v=x;
}
dp[1]=z*c[z];
dp[2]=max(z*c[z],v*c[v]);
for(int i=1;i<=mx;i++)dp[i]=max(dp[i-1],dp[i-2]+i*c[i]);
cout<<dp[mx]<<"\n";
return 0;
}
这里空空如也
有帮助,赞一个