题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2614
本题比较水,dfs进行搜索
#include<iostream>
#include<cstring>
using namespace std;
int n;
int T[15][15];
int v[15];
int NUM=0;
void dfs(int i,int t,int num){
//i表示当前搜到第i行,t表示上次的T值
if(NUM==n) return ; //最大值为n
if(num>NUM) NUM=num;
for(int k=0;k<n;k++){
if(v[k]==1) continue;
if(T[i][k]>=t) {
v[k]=1;
dfs(k,T[i][k],num+1);
v[k]=0;
}
}
return ;
}
int main(){
while(cin>>n){
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cin>>T[i][j];
memset(v,0,sizeof(v));
v[0]=1;
NUM=1;
dfs(0,0,1);
cout<<NUM<<endl;
}
return 0;
}