539
简单的搜索题,dfs搜出最长的路径即可
//============================================================================ // Name : 539.cpp // Author : // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //============================================================================ #include <iostream> #include <cstdio> #include <cstring> using namespace std; int Max, n, m, len, a, b; int d[30][30], vis[30][30]; void dfs(int k, int len){ if(Max < len) Max = len; for(int i = 0;i < n;i++){ if(!vis[k][i]&&!vis[i][k]&&d[k][i] == 1){ vis[k][i] = 1; dfs(i, len+1); vis[k][i] = 0; } } } int main() { freopen("a.txt", "r", stdin); while(scanf("%d%d", &n, &m)&&(n||m)){ memset(d, 0, sizeof(d)); for(int i = 0;i < m;i++){ scanf("%d%d", &a, &b); d[a][b] = 1; d[b][a] = 1; } Max = 0; for(int i = 0;i < n;i++){ memset(vis, 0, sizeof(vis)); dfs(i, 0); } printf("%d\n", Max); } return 0; }