博客
关于我
高兴的小明
阅读量:591 次
发布时间:2019-03-12

本文共 691 字,大约阅读时间需要 2 分钟。

要解决这个问题,我们需要计算总共听到多少次花炮响声。每个邻居以固定的间隔放花炮,我们需要统计所有不同时间点的花炮响声数。

方法思路

  • 问题分析:每个人在固定的时间间隔内连续放花炮,直到放了指定次数的花炮。我们需要计算所有花炮响声的总次数。
  • 直觉与洞察:每个人放花炮的时间点是从0开始,以固定的间隔递增的时间点。我们需要将这些时间点合并并去重,统计总数。
  • 算法选择与优化:使用集合来记录所有时间点,因为集合自动去重,并且查询时间复杂度较低。对于每一次花炮,计算相应的时间点,并存入集合中。
  • 复杂度分析:时间复杂度为O(n * b),其中n是邻居的数量,b是每人放的花炮次数。由于n和b都在限制范围内(<= 100),该复杂度是可行的。
  • 解决代码

    n = int(input())A = list(map(int, input().split()))b = int(input())times = set()for k in range(1, b + 1):    for a in A:        time = (k - 1) * a        times.add(time)print(len(times))

    代码解释

  • 读取输入:首先读取邻居数量n,然后读取每个邻居的花炮间隔时间,最后读取每人放的花炮次数b。
  • 初始化集合:使用集合times来记录所有不同的时间点。
  • 计算时间点:对于每一次花炮次数k(从1到b),计算每个邻居在该次发射的时间点,并将时间点添加到集合中。
  • 输出结果:集合的大小即为总共听到花炮响声的次数。
  • 这个方法高效且直接,能够准确统计所有花炮响声的总次数。

    转载地址:http://okjxz.baihongyu.com/

    你可能感兴趣的文章
    vue报错 created hook错误
    查看>>
    单选框点击文字也能选中
    查看>>
    此主机支持Intel VT-x,但Intel VT-x 处于禁用状态。
    查看>>
    06-局部变量和全局变量
    查看>>
    12-面向对象1
    查看>>
    python基础总结 异常处理
    查看>>
    解决Vue源码运行错误
    查看>>
    HDU - 4109 Instrction Arrangement
    查看>>
    Lua websocket长连接
    查看>>
    SQL 分页查询 返回总条数
    查看>>
    重写的特点
    查看>>
    【数据库】MySQL导入文件与导出文件
    查看>>
    计算机网络UDP协议和TCP协议
    查看>>
    Linux运行C语言文件
    查看>>
    C字符串高级
    查看>>
    2010-03-25 函数题
    查看>>
    C语言_动态内存分配练习
    查看>>
    Linux学习_系统进程概念
    查看>>
    七层网络模型(待添加)
    查看>>
    考研复试——KY276 Problem C
    查看>>