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\n",maxsum); } return 0; }