TLE求条,悬赏4个关注
查看原帖
TLE求条,悬赏4个关注
1198296
封禁用户楼主2024/6/19 14:47

太唐了

#include<bits/stdc++.h>
using namespace std;
#define int long long 
const int N=15,M=290;
int n,a[5][N],dp[(1<<N)][5][M];
int dfs(int pro,int las,int time){
	if(time>=280) return 0;
	if(dp[pro][las][time]!=-1) return dp[pro][las][time];
	int ans=0;
	for(int i=1;i<=3;++i){
		if(i!=las){
			for(int j=1;j<=n;++j){
				if((pro&(1<<(j-1)))==0&&time+a[i][j]<=280){
					ans=max(ans,1+dfs(pro|(1<<j-1),i,time+a[i][j]));
				}
			}
		}
	}
	return dp[pro][las][time]=ans;
}
signed main(){
	int T;
	cin>>T;
	while(T--){
		cin>>n;
		for(int i=1;i<=3;++i){
			for(int j=1;j<=n;++j){
				cin>>a[i][j];
			}
		}
		memset(dp,-1,sizeof(dp));
		cout<<dfs(0,0,0)<<endl;
	}
	return 0;
} 
2024/6/19 14:47
加载中...