蒟蒻求救!
查看原帖
蒟蒻求救!
294987
giao锅楼主2021/8/27 06:08
#include<bits/stdc++.h>
using namespace std;
int a[200],b[200],cou[5],hou[5],dp[45][45][45][45];
int main(){
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	cin>>a[i];
	for(int i=1;i<=m;i++){
		cin>>b[i];
		cou[b[i]]++;
	}
	int aa=0,bb=0,cc=0,dd=0;
	int h=1;
	dp[0][0][0][0]=a[1];
	while(h<n){
		if(aa<=cou[1]){
			dp[aa+1][bb][cc][dd]=dp[aa][bb][cc][dd]+a[h]+a[h+1];
			h+=1;
		}
		if(bb<=cou[2]){
			dp[aa][bb+1][cc][dd]=dp[aa][bb][cc][dd]+a[h]+a[h+2];
			h+=2;
		}
		if(cc<=cou[3]){
			dp[aa][bb][cc+1][dd]=dp[aa][bb][cc][dd]+a[h]+a[h+3];
			h+=3;
		}
		if(dd<=cou[4]){
			dp[aa][bb][cc][dd+1]=dp[aa][bb][cc][dd]+a[h]+a[h+4];
			h+=4;
		}
	}
	int sum=-9999;
	for(int aa=0;aa<=cou[1];aa++)
		for(int bb=0;bb<=cou[2];bb++)
			for(int cc=0;cc<=cou[3];cc++)
				for(int dd=0;dd<=cou[4];dd++)
					sum=max(sum,dp[aa][bb][cc][dd]);
	cout<<sum;
	return 0;
}
2021/8/27 06:08
加载中...