鱼C论坛

 找回密码
 立即注册
查看: 2035|回复: 30

[已解决]有个题不太会

[复制链接]
发表于 2020-5-28 18:39:50 | 显示全部楼层 |阅读模式
5鱼币
希望大佬们给点思路,想了好久了不知道怎么解决
最佳答案
2020-5-28 18:39:51
本帖最后由 java2python 于 2020-5-31 17:12 编辑

比如:比如之前这里先把城市编号0,1,2,3(和编程不同,0开始很违反习惯)。。。改为A,B,C,D,E(城市和路线容易搞混,最好全是分开编号)
加入起始点A,A和B,C,D相连
A->B
A->C
A->D
就像下棋,走一步能够到达的节点,把它放到STEP1l列表
然后是,走两步能到达的节点,放到STEP2
接下来3,4,5。。。就是STEP3,STEP4,STEP5
如果是这样就是手动实现了,
程序操作用循环,当STEPn的列表不为空,就再执行下一步,因为所有下一步,都是前一步再走一步来的
前一步都搜索不到节点,那么自然没有再下一步了。另外程序不会step1->step2->step3->step4->step5
而是始终step0->step1。。。一步走完后(循环完成后),把step1变成step0,STEP1变成空,继续while步骤,直到step1发展不出节点
  1. while len(step_n0_nodes) > 0:
  2.     step_n0_nodes 所有节点发展下一步,加入step1
  3.        
  4.     step_n0_nodes = step_n1_nodes[:] #下一步step0变成1
  5.     step_n1_nodes.clear() #step1变成空
复制代码

而搜索的起始点,就是第一个step0:
step_n0_nodes = [SRH(SRH.srh_start,-1,-1)]
QQ图片20200528183656.png

最佳答案

查看完整内容

比如:比如之前这里先把城市编号0,1,2,3(和编程不同,0开始很违反习惯)。。。改为A,B,C,D,E(城市和路线容易搞混,最好全是分开编号) 加入起始点A,A和B,C,D相连 A->B A->C A->D 就像下棋,走一步能够到达的节点,把它放到STEP1l列表 然后是,走两步能到达的节点,放到STEP2 接下来3,4,5。。。就是STEP3,STEP4,STEP5 如果是这样就是手动实现了, 程序操作用循环,当STEPn的列表不为空,就再执行下一步,因为所 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-28 18:39:51 | 显示全部楼层    本楼为最佳答案   
本帖最后由 java2python 于 2020-5-31 17:12 编辑

比如:比如之前这里先把城市编号0,1,2,3(和编程不同,0开始很违反习惯)。。。改为A,B,C,D,E(城市和路线容易搞混,最好全是分开编号)
加入起始点A,A和B,C,D相连
A->B
A->C
A->D
就像下棋,走一步能够到达的节点,把它放到STEP1l列表
然后是,走两步能到达的节点,放到STEP2
接下来3,4,5。。。就是STEP3,STEP4,STEP5
如果是这样就是手动实现了,
程序操作用循环,当STEPn的列表不为空,就再执行下一步,因为所有下一步,都是前一步再走一步来的
前一步都搜索不到节点,那么自然没有再下一步了。另外程序不会step1->step2->step3->step4->step5
而是始终step0->step1。。。一步走完后(循环完成后),把step1变成step0,STEP1变成空,继续while步骤,直到step1发展不出节点
  1. while len(step_n0_nodes) > 0:
  2.     step_n0_nodes 所有节点发展下一步,加入step1
  3.        
  4.     step_n0_nodes = step_n1_nodes[:] #下一步step0变成1
  5.     step_n1_nodes.clear() #step1变成空
复制代码

而搜索的起始点,就是第一个step0:
step_n0_nodes = [SRH(SRH.srh_start,-1,-1)]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-28 22:04:03 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-28 22:14:01 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-29 01:07:25 From FishC Mobile | 显示全部楼层
嘿嘿
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-29 09:43:31 | 显示全部楼层
可以用循环(决策树)解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-29 10:06:46 | 显示全部楼层
liaoyiqin 发表于 2020-5-29 09:43
可以用循环(决策树)解决

能不能具体一点呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-29 10:14:32 | 显示全部楼层

具体题意没懂,比如收费是怎么算的,返回的是什么

看样例应该是 返回 第几条路行 和 金额?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-29 10:53:54 | 显示全部楼层
Twilight6 发表于 2020-5-29 10:14
具体题意没懂,比如收费是怎么算的,返回的是什么

看样例应该是 返回 第几条路行 和 金额?

需要求出最短路径的长度,如果有多个最短路径,求出花费最少的,
就是让你求出路径最短且花费最少的路径
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-29 10:58:36 | 显示全部楼层
神秘小帅哥 发表于 2020-5-29 10:53
需要求出最短路径的长度,如果有多个最短路径,求出花费最少的,
就是让你求出路径最短且花费最少的路径

你说和没说差不多...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-29 11:04:32 | 显示全部楼层
Twilight6 发表于 2020-5-29 10:58
你说和没说差不多...

图片上就是完整的一个题,我不会才来求助的。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-29 11:25:49 | 显示全部楼层
  1. A = [ int(i) for i in input().split(' ')]
  2. routes = []
  3. while True:
  4.     M = input()
  5.     if not M:
  6.         break
  7.     routes.append([int(i) for i in M.split(' ') ])
  8.    
  9. # 将可以到达目的地的路线存入列表
  10. shortest_routes = []
  11. for i in range(len(routes)):
  12.     if routes[i][0] == A[2] and routes[i][1] == A[3]:
  13.         shortest_routes.append((i+1,routes[i],routes[i][3]*routes[i][2]))

  14. # 按升序排序        
  15. shortest_routes = sorted(shortest_routes,key=lambda x:x[2])
  16. print(shortest_routes[0][0],shortest_routes[0][2])
复制代码


路径.gif
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-29 12:02:30 | 显示全部楼层

emmm...不是很对,收费额应该不是高速公路的长度x收费额吧,应该是需要经过这个高速然后进行缴费
例如这个题:应该是先从城市0到城市2在从城市2到城市3,然后从城市0到城市2需要交费20 从城市2到城市3需要缴费20 一共交费20+20=40元
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-29 12:05:05 | 显示全部楼层
神秘小帅哥 发表于 2020-5-29 12:02
emmm...不是很对,收费额应该不是高速公路的长度x收费额吧,应该是需要经过这个高速然后进行缴费
例如这 ...


对啊 我开始就问你收费是怎么算的啊,你也不说,说了一堆没什么用的

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-29 12:10:26 | 显示全部楼层
Twilight6 发表于 2020-5-29 12:05
对啊 我开始就问你收费是怎么算的啊,你也不说,说了一堆没什么用的

这个收费不是自己理解的嘛,题目上应该写清楚了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-29 12:13:03 | 显示全部楼层
神秘小帅哥 发表于 2020-5-29 12:10
这个收费不是自己理解的嘛,题目上应该写清楚了


主要是我开始问你了啊  晕了

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-29 13:08:00 | 显示全部楼层
神秘小帅哥 发表于 2020-5-29 12:10
这个收费不是自己理解的嘛,题目上应该写清楚了

对啊,每条收费多少元?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-29 13:21:32 | 显示全部楼层
Twilight6 发表于 2020-5-29 12:13
主要是我开始问你了啊  晕了

对不起我的错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-29 13:22:40 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-29 13:26:18 | 显示全部楼层
Twilight6 发表于 2020-5-29 12:13
主要是我开始问你了啊  晕了

这题算写的很清楚的了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 21:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表