这题最难得地方在于把题目看懂,简单的dfs,没什么好说的
#include<iostream> #include<cstring> #define maxn 15+1 using namespace std; int maxx; int mapp[maxn][maxn]; int visit[maxn]; int n; void dfs(int x,int time,int num) { for(int i=1;i<=n;i++) { if(!visit[i]&&mapp[x][i]>=time) { visit[i]=1; dfs(i,mapp[x][i],num+1); visit[i]=0; } } maxx=max(maxx,num); } int main() { while(cin>>n) { memset(visit,0,sizeof(visit)); for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) cin>>mapp[i][j]; } visit[1]=1; maxx=0; dfs(1,0,1); cout<<maxx<<endl; } return 0; }
时间: 2024-10-30 12:12:33