| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 834 人关注过本帖
标题:一道信息学奥赛题,请帮忙解一下。
取消只看楼主 加入收藏
zxxdyx0124
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-8-5
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:4 
一道信息学奥赛题,请帮忙解一下。
#include <stdio.h>
#define V 100
int n, m, ans, e[V][V], visited[V];
void dfs(int x, int len)
{
int i;
visited[x] = 1;
if (len > ans)
ans = len;
for (i = 1; i <= n; i++)
if ((visited[i] == 0) && (e[x][i] != -1))
dfs(i, len + e[x][i]);  
visited[x] = 0;
}
int main()
{
int i, j, a, b, c;
scanf("%d%d", &n, &m);
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
e[i][j] = -1;
for (i = 1; i <= m; i++) {
scanf("%d%d%d", &a, &b, &c);
e[a][b] = c;
e[b][a] = c;
}
for (i = 1; i <= n; i++)
visited[i] = 0;
ans = 0;
for (i = 1; i <= n; i++)
dfs(i, 0);
printf("%d\n", ans);
return 0;
}
输入:
4 6
1 2 10
2 3 20
3 4 30
4 1 40
1 3 50
2 4 60
输出:____150_____
程序没有问题,可是我在主函数第四次调用dfs时就出不来这个答案,请高手指点。
搜索更多相关主题的帖子: include 信息学 
2012-08-05 23:11
zxxdyx0124
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-8-5
收藏
得分:0 
#include <stdio.h>
#define V 100
int n, m, ans, e[V][V], visited[V];
void dfs(int x, int len)
{
       int i;
       visited[x] = 1;
        if (len > ans)
           ans = len;
           for (i = 1; i <= n; i++)
              if ((visited[i] == 0) && (e[x][i] != -1))
                  dfs(i, len + e[x][i]);  
              visited[x] = 0;
     }
  int main()
    {
           int i, j, a, b, c;
           scanf("%d%d", &n, &m);
           for (i = 1; i <= n; i++)
              for (j = 1; j <= n; j++)
                e[i][j] = -1;
          for (i = 1; i <= m; i++) {
              scanf("%d%d%d", &a, &b, &c);
              e[a][b] = c;
              e[b][a] = c;
           }
  for (i = 1; i <= n; i++)
        visited[i] = 0;
        ans = 0;
  for (i = 1; i <= n; i++)
       dfs(i, 0);
       printf("%d\n", ans);
  return 0;
}
这样可以了吗??
2012-08-05 23:27
zxxdyx0124
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-8-5
收藏
得分:0 
那你懂这个程序吗????高手??
2012-08-05 23:29
zxxdyx0124
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-8-5
收藏
得分:0 
能解题就谢了,新手才需要帮忙的啊??

2012-08-05 23:30
zxxdyx0124
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-8-5
收藏
得分:0 
我也知道在遍历无向图,也知道答案,我需要知道的是:这个程序是怎么实现这个功能的?程序是怎么运行到结果的?
2012-08-06 00:23
快速回复:一道信息学奥赛题,请帮忙解一下。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017059 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved