hdu 2614

#include<stdio.h>
int map[99][99];
int vist[99];
int sum=1;
int maxsum=1;
int max=0;
int N;
void xuan(int row,int qian)
{
    if(maxsum<sum)
        maxsum=sum;
    
        for(int j=0;j<N;j++)
        {
            if(qian<=map[row][j]&&j!=row&&vist[j]==0)
            {
                
                vist[j]=1;
                ++sum;
                xuan(j,map[row][j]);
                vist[j]=0;
                --sum;
            }
        }
    
}
int main()
{
    //freopen("in.txt","r",stdin);
    while(scanf("%d",&N)!=EOF)
    {
        maxsum=1;
        sum=1;
        for(int i=0;i<N;i++)
            vist[i]=0;
        for(int i=0;i<N;i++)
        {
            for(int j=0;j<N;j++)
            {
                scanf("%d",&map[i][j]);
            }
        }
    vist[0]=1;
    xuan(0,0);
    printf("%d
",maxsum);
    
    }
    return 0;
}
原文地址:https://www.cnblogs.com/452035305qq/p/6289719.html