(每日一练65939)题目名称:天然气订单

文盲老顾
WEB应用领新星创作者
博客专家认证
2023-05-26 18:54:50

天然气运输成本昂贵,危险性高,为了节省运输成本,提倡绿色环保,需要尽可能的优化订单配送,比如相同地区的天然气订单可以一次性配送。 现需要向多个地区运输天然气。但是同一个地区可能有多个订单需求。当前仅只知道某些成对的订单是同一个地区的,同一个地区的天然气需要尽可能一次性配送从而降低运输成本,所以需要尽可能的将同一个地区的订单放在一起。订单的编号是1到n。

这个就得注意审题了,老顾在周赛里碰到了几次这个题目,都没想明白为什么没有AC,今天也是折腾了半天,没搞懂。。。。

最后,发现题目最后有一小段文字:订单的编号是1到n。好吧,没有列出来的订单号,就是单独配送的,需要补全。

n,m = map(int,input().split())
arr = [list(map(int,input().split())) for _ in range(m)]
v,d = {_ for _ in range(1,n + 1)},{}
for row in arr:
    a,b = row
    if a in d:
        d[a].add(b)
    else:
        d[a] = {a,b}
    if b in d:
        d[b].add(a)
    else:
        d[b] = {a,b}
z = []
for i in sorted(d):
    if i not in d:
        continue
    u = set()
    while len(u) < len(d[i]):
        n = list(d[i] - u)[0]
        u.add(n)
        if n != i:
            if n in d:
                d[i] = d[i].union(d[n])
    for n in u:
        if n in d:
            del d[n]
    z.append(sorted(u))
u = {x for u in z for x in u}
z += [[x] for x in v - u]
print(len(z))
for row in sorted(z):
    print(*row)
...全文
118 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
于扶摇 2023-05-28
  • 打赏
  • 举报
回复

首先,根据输入的 n 和 m 读入一个二维列表 arr,每一行都是一些数字组成的列表,代表输入表格中相应位置的数据。然后,我们需要使用这个二维列表来构建一个字典 d,其中字典的键是数字,值是一个集合,包含与该数字相邻的所有数字。

具体来说,我们可以遍历二维列表 arr 中的每一行,对于每一行中的两个数字 a 和 b,如果 a 已经在字典 d 中,则将 b 加入到 a 对应的集合中;否则,将 {a, b} 作为一个新的键值对加入到字典 d 中。同样地,如果 b 已经在字典 d 中,则将 a 加入到 b 对应的集合中;否则,将 {a, b} 作为一个新的键值对加入到字典 d 中。

接下来,我们需要对字典 d 进行一些处理。对于字典 d 中的每一个数字 i,我们将其相邻的数字加入到一个集合 u 中。具体来说,我们可以遍历字典 d 中的每一个数字 i,然后使用一个 while 循环来不断添加新的数字到集合 u 中,直到集合 u 的大小等于字典 d 中与 i 相邻的数字的数量。在添加数字的过程中,我们需要记录下添加的数字 n,并检查它是否与 i 相邻。如果不是,则将 n 加入到集合 u 中。最后,我们需要将集合 u 中的数字按照字典序排序,并将它们存储到一个列表 z 中。

最后,我们需要找到所有不在集合 u 中的数字 v,并将它们作为一个单独的列表存储到变量 u 中。然后将变量 z 和 u 合并成一个新的列表 y,并按照字典序对 y 进行排序。最后输出 y 的长度以及 y 中的所有列表即可。

321

社区成员

发帖
与我相关
我的任务
社区描述
主要用于技术交流,包括但不限于 .net,mssql,js,css,python,算法,运维。也可以晒最新技术,美图,运动等。最后,如果有问题,可以提问,老顾能帮忙的会尽量帮忙哦。
前端sqlserverasp.net 技术论坛(原bbs) 北京·西城区
社区管理员
  • 文盲老顾
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧