UVA 539 The Settlers of Catan

来源:互联网 发布:apache server 404 编辑:程序博客网 时间:2024/06/05 05:23

UVA 539 The Settlers of Catan

题目大意:第一行输入n个城市和m条路,下面m行输入m条路连接那些城市,求一条经过最多路的路径长度

解题思路:把每个点作为初始位置回溯

#include <stdio.h>#include <iostream>#include <string.h>using namespace std;int n, m;int road[30][30];int l;void dfs(int a, int b) {    if(b > l)        l = b;    for(int i = 0; i < n; i++) {        if(road[a][i]) {            road[a][i]--;            road[i][a]--;            dfs(i, b + 1);            road[a][i]++;            road[i][a]++;        }    }}int main() {    while(cin >> n >> m && n+m) {        memset(road, 0, sizeof(road));        for(int i = 0; i < m; i++) {            int x, y;            cin >> x;            cin >> y;            road[x][y]++;            road[y][x]++;        }        l = 0;        for(int i = 0; i < n; i++)            dfs(i, 0);        cout << l << endl;    }    return 0;}
0 0
原创粉丝点击