T150189 养猪

Miku

一道非常简单的dp,除非像我一样看错题

以为是所有猪全杀

然后写了个贪心,然后滚蛋

不过显然可以证明的是,优先取体重下降的快的猪,然后贪心

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long n,k;
struct pig{
	int a;
	int p;
}pi[10001];
bool cmp(pig x,pig y){
	if(x.p==y.p)
	return x.a>y.a;
	return x.p>y.p;
}
int ans;
int anss;
int dp[10001];
int main(){
	scanf("%d%d",&n,&k);
	for(long long i=1;i<=n;++i){
		scanf("%d",&pi[i].a);
	}
	for(long long j=1;j<=n;++j){
		scanf("%d",&pi[j].p);
	}
	sort(pi+1,pi+n+1,cmp);
	for(int z=1;z<=n;++z){
		for(int j=k;j>=1;--j){
			ans=max(0,pi[z].a-(j-1)*pi[z].p);
			dp[j]=max(dp[j],dp[j-1]+ans);
		}
	}
	ans=0;
	for(int i=1;i<=k;++i){
		ans=max(ans,dp[i]);
	}
	printf("%d",ans);
	return 0;
}

上一篇:Java8 Stream(11)Collectors 案例详解


下一篇:MySQL用户权限