/* ***********************************************
Author :xryz
Email :523689985@qq.com
Created Time :4-9 22:30:18
File Name :Beat.cpp
************************************************ */
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
int n,mp[20][20],vis[20],ans;
void dfs(int now,int data,int cnt)
{
if(now==n) return;
ans=max(ans,cnt);
for(int i=0;i<n;i++)
{
if(vis[i]) continue;
if(mp[now][i]>=data)
{
vis[i]=1;
dfs(i,mp[now][i],cnt+1);
vis[i]=0;
}
}
}
int main()
{
while(~scanf("%d",&n))
{
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
scanf("%d",&mp[i][j]);
ans=0;
memset(vis,0,sizeof(vis));
vis[0]=1;
dfs(0,0,1);
printf("%d\n",ans);
}
return 0;
}
hdu 2164 Beat
最新推荐文章于 2016-10-07 13:52:36 发布
本文介绍了一个使用C++实现的图遍历算法示例,通过深度优先搜索(DFS)来寻找图中从一个节点到其他节点的最大可达路径长度。代码详细展示了如何定义图的结构、初始化输入数据以及进行递归搜索的过程。


139

被折叠的 条评论
为什么被折叠?



