hdu1514

来源:互联网 发布:大数据可视化展示 编辑:程序博客网 时间:2024/05/29 04:16

蒟蒻的自我拯救。。。

#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <cmath>using namespace std;int n,dp[50][50][50][50];int save[50][5],x[10];int dfs(int bas,int num){    if(dp[x[1]][x[2]][x[3]][x[4]]!=-1)        return dp[x[1]][x[2]][x[3]][x[4]];    int maxn=0,sum=0,kind;    for(int i=1;i<=4;i++)    {        x[i]++;        if(x[i]<=n)        {            kind=(1<<save[x[i]][i]);            if(bas&kind)            {                int tt=bas^kind;                sum=dfs(tt,num-1)+1;            }            else if(num<4)            {                 sum=dfs(bas|(kind),num+1);            }        }        maxn=max(maxn,sum);        x[i]--;    }    return dp[x[1]][x[2]][x[3]][x[4]]=maxn;}int main(){    while(scanf("%d",&n))    {        if(n==0)            break;        for(int i=1;i<=n;i++)        {            for(int j=1;j<=4;j++)                scanf("%d",&save[i][j]);        }        for(int i=1;i<=4;i++)        {            x[i]=0;        }        memset(dp,-1,sizeof(dp));        printf("%d\n",dfs(0,0));    }    return 0;}


0 0
原创粉丝点击