为啥CE
查看原帖
为啥CE
189752
danny0618楼主2020/10/26 22:02

这代码为啥CE

别告诉我是机子炸了 因该是本蒟蒻太菜了

#include<iostream>
#define zz dp[i][j][k][l]
using namespace std;
const int N=400;
int n,m,sum[400],g[5];
int dp[N][N][N][N];
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++)
		cin>>sum[i];
    for(int i=1;i<=m;i++){
		int x;cin>>x;
		g[x]++;
	}
	dp[0][0][0][0]=sum[1];
	for(int i=0;i<=g[1];i++){ 
		for(int j=0;j<=g[2];j++){ 
			for(int k=0;k<=g[3];k++){ 
				for(int l=0;l<=g[4];l++){
					int xx=1+i+j*2+k*3+l*4;
					int yy=dp[i-1][j][k][l]+sum[xx];
					if(i)zz=max(zz,yy);
					yy=dp[i][j-1][k][l]+sum[xx];
					if(j)zz=max(zz,yy);
					yy=dp[i][j][k-1][l]+sum[xx];
					if(k)zz=max(zz,yy);
					yy=dp[i][j][k][l-1]+sum[xx];
					if(l)zz=max(zz,yy);
				}
			}
		}
	}
    cout<<dp[g[1]][g[2]][g[3]][g[4]]<<endl;
    return 0;
}
2020/10/26 22:02
加载中...