| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1204 人关注过本帖
标题:编了一个多小时编不出来,求解
只看楼主 加入收藏
b465513006
Rank: 2
等 级:论坛游民
威 望:1
帖 子:70
专家分:48
注 册:2011-3-18
收藏
得分:0 
回复 9楼 b465513006
呵呵。。。你是对的,但是我昨天提交了一下,显示是超时的,可能递归比较耗时,你能再给个优化的代码吗
2011-07-15 14:25
b465513006
Rank: 2
等 级:论坛游民
威 望:1
帖 子:70
专家分:48
注 册:2011-3-18
收藏
得分:0 
回复 8楼 beyondyf
呵呵。。。你是对的,但是我昨天提交了一下,显示是超时的,可能递归比较耗时,你能再给个优化的代码吗
2011-07-15 14:47
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
最短路径

欢迎来到我的博客:http://blog..cn/noisunyuhong
2011-07-15 20:12
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:14 
楼主是福建农林大学的吧?没猜错,helo123--疾风就是你吧?
前面的代码是深度优先检索的,换成广度优先配合剪枝效率会提高。
这个问题类似于单源最短路径,但不完全相同。最短路径可以用贪心算法来解。这个问题不行。事实上它是求最长路径(虽然权是分配在点上的,但完全可以转换到边上)。
这是我广度优先的代码。不过我去你学校OJ上试了一下结果WA。目前找不出原因,也没有测试数据可以对比。
程序代码:
#include <stdio.h>

#define MAX_NODES    30

int RP[MAX_NODES + 2];
int MAP[MAX_NODES + 2];

int Cal(int n)
{
    int ns1 = 0, ns2 = 1,ns[32] = {0}, ps[32] = {1};
    int i, j, k;
    n++;
    while(ns1 != ns2)
    {
        ns1 = ns2;
        for(i = 0; i <= n; i++)
        {
            if(ns2 & (1 << i))
            for(j = 0; j <= n; j++)
            {
                k = 1 << j;
                if(MAP[i] & k && !(ps[i] & k) && ns[j] < ns[i] + RP[j])
                {
                    ns2 |= k;
                    ns[j] = ns[i] + RP[j];
                    ps[j] = ps[i] + k;
                }
            }
        }
    }
    return ns[n];
}

int main()
{
    int i, n, m, f, t;
    scanf("%d%d", &n, &m);
    for(i = 1; i <= n; i++)
        scanf("%d", RP + i);
    for(i = 0; i < m; i++)
    {
        scanf("%d%d", &f, &t);
        MAP[f] |= 1 << t;
    }
    printf("%d\n", Cal(n));
    return 0;
}

重剑无锋,大巧不工
2011-07-15 22:49
b465513006
Rank: 2
等 级:论坛游民
威 望:1
帖 子:70
专家分:48
注 册:2011-3-18
收藏
得分:0 
回复 14楼 beyondyf
你都猜对了,那你是哪个学校的?你至少也有大三了吧?
2011-07-16 00:41
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 15楼 b465513006
我毕业已经很久了。本专业也不是学计算机的。
你们学校的OJ和北大的界面很像,不过题目不多,应该是刚建成不久,而且题目描述不是很精确。我在那里做了三道题,只A+B AC了,另两道全WA。呵呵,实在不搞不懂。
有机会请你联系一下你们OJ的管理员,看能不能看一下那两题的测试数据。或者听听管理员的意见。

重剑无锋,大巧不工
2011-07-17 11:44
b465513006
Rank: 2
等 级:论坛游民
威 望:1
帖 子:70
专家分:48
注 册:2011-3-18
收藏
得分:0 
回复 16楼 beyondyf
恩,可以啊,你要那两道测试数据我发给你啊
2011-07-17 15:27
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 17楼 b465513006
一是这道题,应该是1119题。再就是1002题。
我的邮箱是是beyondyfang@。先谢过了。

重剑无锋,大巧不工
2011-07-17 16:12
b465513006
Rank: 2
等 级:论坛游民
威 望:1
帖 子:70
专家分:48
注 册:2011-3-18
收藏
得分:0 
回复 18楼 beyondyf
恩,我明天找管理员要,明天发给你吧
2011-07-17 21:37
快速回复:编了一个多小时编不出来,求解
数据加载中...
 
   



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

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