题目链接
思路:
暴…暴力?
代码:
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
const int N=105;
const double eps=1e-8;
const int mod=1e9+7;
const int inf=0x7fffffff;
const double pi=3.1415926;
int n,m,cnt[N],nxt[N],e[N][N][5],ans;
void dfs(int x,int a,int b,int c,int d)
{
if(x>m)
{
int temp=1LL*a*b*c*d;
ans=max(ans,temp);
return ;
}
if(!cnt[x])
{
dfs(nxt[x],a,b,c,d);
return ;
}
int n=cnt[x];
for(int i=1;i<=n;i++)
{
dfs(x+1,a+e[x][i][0],b+e[x][i][1],c+e[x][i][2],d+e[x][i][3]);
}
}
signed main()
{
IOS;
int t;
cin>>t;
while(t--)
{
cin>>n>>m;
int x;
memset(cnt,0,sizeof cnt);
for(int j=0;j<n;j++)
{
cin>>x;
cnt[x]++;
for(int i=0;i<4;i++)
{
cin>>e[x][cnt[x]][i];
}
}
x=m+1;
for(int i=m;i;i--)
{
nxt[i]=x;
if(cnt[i]) x=i;
}
ans=100000000;
dfs(1,100,100,100,100);
cout<<ans<<endl;
}
return 0;
}