MnZn,96分,第四个点WA了,求助!
查看原帖
MnZn,96分,第四个点WA了,求助!
93701
Morgen_Kornblume楼主2020/11/21 20:39
#include<iostream>
#include<algorithm>
using namespace std;
int fee[]={0,1,3,5,7,9,10,11,14,15,17};
int dp[100010];
int price[11];
int best[11];
int need;

int main(){
	ios::sync_with_stdio(false);
	cin>>need;
	for(int i=1;i<=10;i++){
		cin>>price[i];
	}
	//dp1
	for(int i=1;i<=10;i++){
		for(int j=1;j<=i;j++){
			best[i]=max(best[i],best[i-j]+price[j]);
		}
	}
	for(int i=1;i<=10;i++){
		best[i]-=fee[i];
	}
	//dp2
	for(int i=1;i<=need;i++){
		for(int j=1;j<=10;j++){
			if(i-j<0){
				break;
			}
			dp[i]=max(dp[i],dp[i-j]+best[j]);
		}
	}
	cout<<dp[need];
	return 0;
}
2020/11/21 20:39
加载中...