找回密码
 注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

扫一扫,访问微社区

快捷导航
事务所专题-柯南20周年纪念事件簿
搜索
查看: 2276|回复: 22
打印 上一主题 下一主题

超难.................(能做出来智商起码150)

[复制链接]

杯户中学生

0

主题

0

好友

5

积分

 

升级
10%
帖子
337
精华
0
积分
5
威望
2
RP
0
金钱
0 柯币
人气
24 ℃
注册时间
2004-8-20
跳转到指定楼层
顶楼
发表于 2005-5-13 20:42:48 |只看该作者 |倒序浏览
第一章 胜利的逃亡

Time Limit:2s Memory Limit:32768k

Problem

来自异空的精灵族为这个世界带来了秩序。为了与不断侵犯的邪恶力量作战,万神殿选中了他们最强大的战士Prince与Gush作为他们的守护战神。他们在上百万年的时间里一丝不苟地履行着自己的职责,搜寻并摧毁一切能找到的恶魔。终于有一天在艾泽拉斯遭遇了两支从实体世界中获得了巨大能量的强大恶魔种族。兵败后他们被关在恶魔之都的地下监狱里。
漫长的等待后终于获得了一个逃跑计划。这能够使两位战神跑到恶魔之都的传送点。然后一同回自己的世界。首先Gush沿着城市的街道跑到传送点。然后发送超声信号给Prince,告诉Prince应该跑到哪里。然后Prince沿着街道跑到相同地点,与Gush会合,接着秘密传送回自由的领地。
Gush穿着精灵族的铠甲行走,所以会引起路上恶魔的注意。所以Prince的行程不能与Gush相同。即Gush走过的街Prince不能再走。你需要计算从Gush离开监狱到Prince到达传送点的最短时间。假设发送消息不花费任何时间。

简而言之:
给你一个有权的无向图,找到两条最短的从S到T的路,使得每条街最多走了一次。输出他们最短的时间之和。


Input

本题含有多组数据。每组数据开头为n (2<=n<=100)(街道交点的个数-即结点个数)。监狱在结点1,传送点在结点n。下一行为街道个数m。接着m行描述这m条街。每行有三个整型变量a b t,a b为这条街连接的两个结点号,t (1<=t<= 1000)为走过这条街道需要的时间。每条街连接两个不同的结点。每两个结点之间不会有多条街道。最后一组数据后为一个0。

Output

对于每组数据输出从Gush离开监狱到Prince到达传送点的最短时间。如果无解则输出一行"Back to jail"。

Sample Input

2 1 1 2 999 3 3 1 3 10 2 1 20 3 2 50 9 12 1 2 10 1 3 10 1 4 10 2 5 10 3 5 10 4 5 10 5 7 10 6 7 10 7 8 10 6 9 10 7 9 10 8 9 10 0 Sample Output

Back to jail 80 Back to jail 要把程序打出来
除去不可能的事情,剩下的事即使再不可能,也是真相.

禁止发言

头像被屏蔽

1

主题

0

好友

8

积分

 

帖子
131
精华
0
积分
8
威望
0
RP
16
金钱
32 柯币
人气
21 ℃
注册时间
2004-12-18
沙发
发表于 2005-5-13 21:55:19 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

禁止发言

头像被屏蔽

1

主题

0

好友

8

积分

 

帖子
131
精华
0
积分
8
威望
0
RP
16
金钱
32 柯币
人气
21 ℃
注册时间
2004-12-18
板凳
发表于 2005-5-13 22:21:47 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

最后的银色子弹

日语教室杂役

28

主题

55

好友

7210

积分

 

昵称
Carpe diem
帖子
97655
精华
7
积分
7210
威望
3189
RP
7611
金钱
28229 柯币
人气
2767 ℃
注册时间
2003-11-15
地板
发表于 2005-5-14 17:16:42 |只看该作者

回复: 超难.................(能做出来智商起码150)

好难  最后的程序什么意思呢?
回复

使用道具 举报

杯户小学生

0

主题

0

好友

0

积分

 

升级
0%
帖子
33
精华
0
积分
0
威望
0
RP
0
金钱
0 柯币
人气
8 ℃
注册时间
2005-4-24
5
发表于 2005-5-15 14:17:09 |只看该作者

回复: 超难.................(能做出来智商起码150)

我明白了!
回复

使用道具 举报

杯户中学生

0

主题

0

好友

1

积分

 

升级
0%
帖子
63
精华
0
积分
1
威望
0
RP
0
金钱
0 柯币
人气
0 ℃
注册时间
2005-4-8
6
发表于 2005-5-16 21:23:38 |只看该作者

回复: 超难.................(能做出来智商起码150)

题目记下
考虑去了~~
回复

使用道具 举报

杯户中学生

0

主题

0

好友

1

积分

 

升级
0%
帖子
61
精华
0
积分
1
威望
0
RP
0
金钱
0 柯币
人气
0 ℃
注册时间
2005-4-18
7
发表于 2005-5-20 08:40:29 |只看该作者

回复: 超难.................(能做出来智商起码150)

%&051  这是什么啊!?~
恐怕是要学程序的人 才会做出来吧%&072

Thinking......
回复

使用道具 举报

杯户大学生

0

主题

0

好友

70

积分

 

升级
75%
帖子
1190
精华
0
积分
70
威望
58
RP
0
金钱
1 柯币
人气
6 ℃
注册时间
2004-11-13
8
发表于 2005-5-20 15:38:19 |只看该作者

回复: 超难.................(能做出来智商起码150)

还真不会
回复

使用道具 举报

杯户小学生

0

主题

0

好友

0

积分

 

升级
0%
帖子
18
精华
0
积分
0
威望
0
RP
0
金钱
0 柯币
人气
0 ℃
注册时间
2004-10-11
9
发表于 2005-5-20 15:45:38 |只看该作者

回复: 超难.................(能做出来智商起码150)

n是固定的吗?结点n是几啊?
回复

使用道具 举报

杯户小学生

0

主题

0

好友

0

积分

 

升级
0%
帖子
44
精华
0
积分
0
威望
0
RP
0
金钱
0 柯币
人气
0 ℃
注册时间
2004-1-12
10
发表于 2005-5-21 19:16:56 |只看该作者

回复: 超难.................(能做出来智商起码150)

看不懂题目耶,好像要专业知识的说,唉,那就不知道自己智商是否有150了
回复

使用道具 举报

杯户中学生

0

主题

0

好友

5

积分

 

升级
10%
帖子
337
精华
0
积分
5
威望
2
RP
0
金钱
0 柯币
人气
24 ℃
注册时间
2004-8-20
11
发表于 2005-5-21 20:43:16 |只看该作者

回复: 超难.................(能做出来智商起码150)

[QUOTE=haoshouzheng]我明白了![/QUOTE]

那请说吧.
除去不可能的事情,剩下的事即使再不可能,也是真相.
回复

使用道具 举报

杯户中学生

0

主题

0

好友

6

积分

 

升级
13%
帖子
355
精华
0
积分
6
威望
0
RP
5
金钱
10 柯币
人气
8 ℃
注册时间
2004-4-27
12
发表于 2005-5-21 21:26:09 |只看该作者

回复: 超难.................(能做出来智商起码150)

看不懂~~~
回复

使用道具 举报

杯户大学生

0

主题

0

好友

76

积分

 

升级
90%
帖子
142
精华
1
积分
76
威望
5
RP
174
金钱
250 柯币
人气
0 ℃
注册时间
2004-8-21
13
发表于 2005-5-21 21:26:57 |只看该作者

回复: 超难.................(能做出来智商起码150)

这题用坐标曲线图解析会不会简单一点呢?~如果先设起点为坐标原点0,则三个整型变量a b t中的两个坐标函数会交于一点,则这一点为终点,由于这一点是变量,则图形为双曲线一项半轴图,在图中取离坐标原点最近的点的值为终点~则XY值分别为甲乙两人所经过的路程~
还有一种解法就是设终点为坐标原点······就解到这了,得数个位ZT们努力计算把~画出图回简单很多~
回复

使用道具 举报

杯户中学生

0

主题

0

好友

6

积分

 

升级
13%
帖子
355
精华
0
积分
6
威望
0
RP
5
金钱
10 柯币
人气
8 ℃
注册时间
2004-4-27
14
发表于 2005-5-21 21:31:37 |只看该作者

回复: 超难.................(能做出来智商起码150)

哦?用折线图就能解了吗?试试~~
回复

使用道具 举报

杯户中学生

0

主题

0

好友

5

积分

 

升级
10%
帖子
337
精华
0
积分
5
威望
2
RP
0
金钱
0 柯币
人气
24 ℃
注册时间
2004-8-20
15
发表于 2005-5-22 19:26:23 |只看该作者

回复: 超难.................(能做出来智商起码150)

加油哦!各位.
回复

使用道具 举报

禁止发言

头像被屏蔽

1

主题

0

好友

8

积分

 

帖子
131
精华
0
积分
8
威望
0
RP
16
金钱
32 柯币
人气
21 ℃
注册时间
2004-12-18
16
发表于 2005-5-22 19:27:56 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

禁止发言

头像被屏蔽

1

主题

0

好友

8

积分

 

帖子
131
精华
0
积分
8
威望
0
RP
16
金钱
32 柯币
人气
21 ℃
注册时间
2004-12-18
17
发表于 2005-5-22 19:32:44 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

杯户中学生

0

主题

0

好友

6

积分

 

升级
13%
帖子
355
精华
0
积分
6
威望
0
RP
5
金钱
10 柯币
人气
8 ℃
注册时间
2004-4-27
18
发表于 2005-5-22 21:43:26 |只看该作者

回复: 超难.................(能做出来智商起码150)

恩~好像是函数题~~很多术语没学过,解不出来~~~
有权的无向图——这是什么??
I LOVE KID!!
回复

使用道具 举报

觉醒的小五郎

水区荣誉版主
11周年活动助理

97

主题

26

好友

583

积分

 

升级
83%
帖子
5301
精华
0
积分
583
威望
358
RP
430
金钱
1791 柯币
人气
1434 ℃
注册时间
2004-8-12
19
发表于 2005-5-22 22:26:56 |只看该作者

回复: 超难.................(能做出来智商起码150)

无项图最短路径是不是编程?

SP(Shortest Path,最短路径)问题是编程中最常见的问题之一,下面介绍2个计算最短路径的算法。
输入文件格式:
第一行:n,代表端点数
第2到n+1行:邻接矩阵

一、Floyd-Warshall算法
  该算法的中心思想是:任意两点i,j间的最短距离(记为Dij)会等于从i点出发到达j点的以任一点为中转点的所有可能的方案中,距离最短的一个。即:
  Dij=min(Dij,Dik+Dkj,……),1<=k<=5。
 这样,我所就找到了一个类似动态规划的表达式,只不过这里我们不把它当作动态规划去处理,而是做一个二维数组用以存放任意两点间的最短距离,利用上述公式不断地对数组中的数据进行处理,直到各数据不再变化为止,这时即可得到A到E的最短路径

程序如下:
CLS
CONST max = 200
CONST maxn = 30
DIM SHARED n, s, f
DIM SHARED map(maxn, maxn)
CALL init
CALL floyd
CALL show

SUB floyd
FOR k = 1 TO n
FOR i = 1 TO n
FOR j = 1 TO n
   IF map(i, j) > map(i, k) + map(k, j) THEN
      map(i, j) = map(i, k) + map(k, j)
   END IF
NEXT j, i, k
END SUB

SUB init
INPUT "File Name:", fin$
OPEN fin$ FOR INPUT AS #1
INPUT #1, n
FOR i = 1 TO n
FOR j = 1 TO n
  INPUT #1, map(i, j)
NEXT j, i
FOR i = 1 TO n
FOR j = 1 TO n
  IF map(i, j) = 0 THEN map(i, j) = max
NEXT j, i
INPUT "Starting Point:", s
INPUT "Finishing Point:", f
END SUB

SUB show
PRINT "The Shortest Length From "; s; " to "; f; " is "; , map(s, f)
END SUB

这个算法是常用的算法之一,复杂度为O(n^3)


二、Dijkstra算法(类似标号法,一般不作区分)
所谓标号法的基本思想是从起点s出发,逐步地向外探寻最短路。在执行过程中,与每个点对应,记录下一个数(称为这个点的标号),它或者表示从s到该点的最短路的权(称为P标号),或者表示这个权的上界(称为T标号),具体做法是每扩展一步,就将一个具T标号的点改具P标号的点,从而使有向图D中具P标号的顶点数增多一个。如此一步步执行下去,就可求出从s到各点的最短路。
程序如下:
CLS
CONST maxn = 50
DIM SHARED n, s, f
DIM SHARED map(maxn, maxn), dis(maxn), mark(maxn)      
'mark记录是否已被标号,dis存s到各点的距离。
CALL init        '初始化
CALL dijkstra      '主过程
CALL show       '输出
END

SUB dijkstra
DO
  bv = 0
  FOR i = 1 TO n
    IF mark(i) THEN
      FOR j = 1 TO n
        IF mark(j) = 0 AND map(i, j) THEN
          IF bv = 0 OR dis(i) + map(i, j) < bv THEN
            bv = dis(i) + map(i, j)
            bn = j
          END IF
        END IF
      NEXT j
    END IF
  NEXT i
  IF bv > 0 THEN
    mark(bn) = 1
    dis(bn) = bv
  END IF
LOOP UNTIL bv = 0
END SUB

SUB init
INPUT "File Name:", fin$
OPEN fin$ FOR INPUT AS #1
INPUT #1, n
FOR i = 1 TO n
FOR j = 1 TO n
  INPUT #1, map(i, j)
NEXT j
NEXT i
CLOSE
INPUT "Starting Point:", s
INPUT "Finishing Point:", f
mark(s) = 1
END SUB

SUB show
PRINT "The Shortest Length From "; s; " to "; f; " is "; dis(f)
END SUB
回复

使用道具 举报

杯户中学生

0

主题

0

好友

1

积分

 

升级
0%
帖子
61
精华
0
积分
1
威望
0
RP
0
金钱
0 柯币
人气
0 ℃
注册时间
2004-12-9
20
发表于 2005-5-23 16:54:24 |只看该作者

[回復:火翼天使]

[QUOTE=火翼天使]还没有回答我的问题,不知道用蒂克斯拉算法可不可以,最近忙着考试没有太仔细想。[/QUOTE]



雖然沒有什麽難度,但考慮到程序優化,仍然可以做調整

http://acm.tongji.edu.cn/people/ps/problem.php?from=1100
做完的去同濟那裏提交吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册 新浪微博登陆

手机版|Archiver|名侦探柯南事务所 ( 沪ICP备17027512号 )

GMT+8, 2024-5-18 10:26 , Processed in 0.074693 second(s), 29 queries , MemCached On.

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部