博客
关于我
HDU 5600 N bulbs (BestCoder Round #67 (div.2))
阅读量:633 次
发布时间:2019-03-14

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

为了解决这个问题,我们需要判断熊孩子是否可以从第一个灯泡走到最后一个灯泡,并在过程中将所有灯泡关闭。每经过一个灯泡,熊孩子都会按下开关,改变灯泡的状态。

方法思路

  • 问题分析:熊孩子从第一个灯泡走到最后一个灯泡,每经过一个灯泡都会按下开关,改变灯泡的状态。我们需要确保每个灯泡被按下的次数使其最终关闭。
  • 关键观察:灯泡的状态会根据被按下的次数改变。如果一个灯泡被按下偶数次,状态不变;如果被按下奇数次,状态改变。我们需要确保所有灯泡都被按下偶数次。
  • 连续0段分析:如果一个连续的0段被覆盖奇数次,灯泡会被改变状态,无法保持关闭。因此,我们需要统计所有连续的0段中奇数长度的数量。如果奇数长度的数量是偶数,则可以通过折返法使所有灯泡关闭。
  • 解决代码

    t = int(input())for _ in range(t):    n = int(input())    s = input().strip()    current_zero = 0    count_odd = 0    for c in s:        if c == '0':            current_zero += 1        else:            if current_zero > 0:                if current_zero % 2 == 1:                    count_odd += 1                current_zero = 0    if current_zero > 0:        if current_zero % 2 == 1:            count_odd += 1    print("YES" if count_odd % 2 == 0 else "NO")

    代码解释

  • 读取输入:首先读取测试用例的数量t,然后循环处理每个测试用例。
  • 遍历灯泡状态:对于每个灯泡状态字符串,遍历每个字符,记录当前连续的0的长度和奇数长度段的数量。
  • 统计奇数长度段:每当遇到一个1时,检查当前连续的0的长度,如果为奇数,则增加奇数长度段的数量,并重置当前长度。
  • 处理最后一段:遍历结束后,检查最后一段连续的0的长度,并更新奇数长度段的数量。
  • 判断结果:根据奇数长度段的数量是否为偶数,输出"YES"或"NO"。
  • 这个方法确保了在O(n)时间复杂度内解决问题,适用于大规模输入。

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

    你可能感兴趣的文章
    pid控制
    查看>>
    PID控制介绍-ChatGPT4o作答
    查看>>
    PID控制器数字化
    查看>>
    PIESDKDoNet二次开发配置注意事项
    查看>>
    PIL Image对图像进行点乘,加上常数(等像素操作)
    查看>>
    PIL.Image、cv2的img、bytes相互转换
    查看>>
    Pillow lacks the JPEG 2000 plugin
    查看>>
    ping 命令的七种用法,看完瞬间成大神
    查看>>
    Pinia:$patch的使用场景
    查看>>
    Pinia:$subscribe()的使用场景
    查看>>
    Pinpoint对Kubernetes关键业务模块进行全链路监控
    查看>>
    Pinterest 大规模缓存集群的架构剖析
    查看>>
    pintos project (2) Project 1 Thread -Mission 1 Code
    查看>>
    PinYin4j库的使用
    查看>>
    PIP
    查看>>
    pip install goose-extractor // SyntaxError: Missing parentheses in call to 'print'
    查看>>
    pip install 出现报asciii码错误的解决
    查看>>
    pip throws TypeError: parse() got an unexpected keyword argument ‘transport_encoding‘ 在尝试安装新软件包时
    查看>>
    pip 下载慢
    查看>>
    pip 升级报错AttributeError: ‘NoneType’ object has no attribute ‘bytes’
    查看>>