\[ dp[i][j]=max(dp[i][j],dp[i-1][j-1]+g[i]); \]
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#define maxn 10010
using namespace std;
inline int read(){
register int x(0),f(1); register char c(getchar());
while(c<'0'||'9'<c){ if(c=='-') f=-1; c=getchar(); }
while('0'<=c&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();
return x*f;
}
pair<int,int> a[maxn];
int n,ans,dp[maxn];
int main(){
n=read();
for(register int i=1;i<=n;i++) a[i].second=read(),a[i].first=read();
sort(a+1,a+1+n);
for(register int i=1;i<=n;i++){
for(register int j=a[i].first;j>=1;j--){
dp[j]=max(dp[j],dp[j-1]+a[i].second);
ans=max(ans,dp[j]);
}
}
printf("%d\n",ans);
return 0;
}
[USACO13DEC]牛奶调度Milk Scheduling
原文:https://www.cnblogs.com/akura/p/11309436.html