将一个输入集放入图形拼图的数据结构中,然后解决它(python或java)

将一个输入集放入图形拼图的数据结构中,然后解决它(python或java),java,python,input,puzzle,Java,Python,Input,Puzzle,我刚回答了一个程序设计竞赛的问题,我完全搞砸了。一开始我在读取输入集时遇到了麻烦。这个问题基本上是这个谜题的一个变体,但在第一行也有一个小时的部分(比如说疏散开始后3小时)。它是这样读的 这个谜题是对所有遭受灾难的人的致敬 日本地震。这个谜题的目的是,给定一个 道路和位置,以确定可容纳的最大人数 被疏散 必须将人员从疏散点疏散到救援点。 道路列表和每小时可搭载的人数如下: 提供 输入规范您的程序必须接受且仅接受一个命令 行参数:输入文件。输入文件的格式如下: 第一行包含4个整数n r s t n

我刚回答了一个程序设计竞赛的问题,我完全搞砸了。一开始我在读取输入集时遇到了麻烦。这个问题基本上是这个谜题的一个变体,但在第一行也有一个小时的部分(比如说疏散开始后3小时)。它是这样读的

这个谜题是对所有遭受灾难的人的致敬 日本地震。这个谜题的目的是,给定一个 道路和位置,以确定可容纳的最大人数 被疏散

必须将人员从疏散点疏散到救援点。 道路列表和每小时可搭载的人数如下: 提供

输入规范您的程序必须接受且仅接受一个命令 行参数:输入文件。输入文件的格式如下: 第一行包含4个整数n r s t n是 位置(每个位置由0到n-1之间的数字给出)r是 道路数量s是要疏散的位置数量 (疏散点)t是人员必须疏散的位置数量 疏散到(救援点)第二行包含s整数 第三行给出了疏散点的位置 给出救援点位置的t整数,如下所示 线包含对道路定义的修改。每条道路由3个 整数l1 l2宽度,其中l1和l2是通过 道路(道路是单向的)和宽度是每小时的人数 可以在路上度过的一小时

现在看一下示例输入集

5 5 1 2 3

0

34

0110

0 2 5

1 2 4

1 3 5

2 4 10

第一行中的3是附加组件,定义为自恢复开始后的小时数,在本例中为3

现在,我的解决方案是使用Dijisktras算法来找到每个救援和撤离节点之间的最短路径。现在我的问题是如何读取输入集。 我阅读python中的第一行,并将值存储在变量中。但是后来我不知道如何存储节点之间的距离值,使用什么DS,以及如何输入它来表示dijikstras算法的标准实现

所以我的问题是双重的 1.)我如何接受这些问题的输入?-我最近在很多比赛中都遇到过这个问题,我希望我能用java或python获得一个简单的代码片段或解释,以读取数据输入集,这样我就可以像dijikstra和floyd/warshall这样的图对图算法一样输入数据。此外,解决上述问题也会有所帮助

2)如何解决这个难题? 我的算法是:

  • 查找evac点之间的最短路径(在上面的示例中,从0到3为14)
  • 将其乘以小时数以获得最大保存次数
  • 另外,对于输入集的变量给出的答案是24,我不明白。有人能解释一下吗

    更新:

    在给定的问题链接中,我得到的答案是14——它似乎只是节点0和3之间的最短路径。但对于3小时部分,答案是什么

    更新

    我知道它是24小时-它是一个完整的图形遍历,每小时,这就是我如何解决它

    Hour 1
    Node 0 to Node 1 - 10 people
    Node 0 to Node 2- 5 people
    TotalRescueCount=0
    Node 1=10
    Node 2= 5
    
    Hour 2
    Node 1 to Node 3 = 5(Rescued)
    Node 2 to Node 4 = 5(Rescued)
    Node 0 to Node 1 = 10
    Node 0 to Node 2 = 5 
    Node 1 to Node 2 = 4
    TotalRescueCount = 10
    Node 1 = 10
    Node 2= 5+4 = 9
    
    Hour 3
    Node 1 to Node 3 = 5(Rescued)
    Node 2 to Node 4 = 5+4 = 9(Rescued)
    TotalRescueCount = 9+5+10 = 24
    

    对于这种情况,对于多个撤离点和救援点,我该如何为此编写pgm呢?

    一个好的通用方法是去类似项目的地方,并参与一些逻辑难题(比如现在的phylo-bot)

    这是一个有意义的大型项目。你会全神贯注,即使你失败了也会帮助这个世界,并通过潜移默化学习。这将是采访时谈论的话题

    你可以在竞赛中发现其他更抽象的问题(旧recmath竞赛的新精神家园)


    比起死记硬背地回答标准的面试问题,我更喜欢这种自我提高的方法

    这看起来像是一个网络流问题,您可以从不同算法的链接开始解决它


    图形中的边不能被超额订阅。这不仅仅是因为每个疏散点都可以走最短的路线——这可能会与另一个疏散点的最短路线发生冲突?非常正确!我仍然找不到方法,也找不到给定输入集的样本输出是24,我得到给定问题链接中的样本输出是14,这似乎只是节点0和3之间的最短路径。但是对于3小时的部分,答案是什么?