博客
关于我
Codeforces Global Round 13
阅读量:406 次
发布时间:2019-03-05

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

为了解决这个问题,我们需要找到将所有点的值变为1所需的最少起跳次数。每次起跳会影响后续的点,具体来说,起跳点的值减少一次,并且起跳会影响后续点的跳跃次数。

方法思路

我们可以使用动态规划来解决这个问题。具体步骤如下:

  • 初始化数组:创建一个数组 b,其中 b[i] 表示点 i 被跳跃的次数。
  • 填充数组:遍历每个点 i,计算 b[i]。根据前点的跳跃次数和当前点的初始值,确保 b[i] 不超过当前点的初始值,并且不低于前点的跳跃次数加上某个值。
  • 累加结果:将所有点的跳跃次数累加,得到最少的起跳次数。
  • 解决代码

    #include 
    #include
    void solve() { int n; std::vector
    a(n + 1); std::vector
    b(n + 1); b[0] = 0; for (int i = 1; i <= n; ++i) { b[i] = std::max(b[i - 1], a[i] - (b[i - 1] - 1)); if (b[i] > a[i]) { b[i] = a[i]; } } int ans = 0; for (int i = 1; i <= n; ++i) { ans += b[i]; } std::cout << ans << '\n';}

    代码解释

  • 初始化:读取输入并初始化数组 ab
  • 动态规划填充:遍历每个点 i,计算 b[i]。使用 std::max 确保 b[i] 不低于前点的跳跃次数加上某个值,并使用 std::min 确保 b[i] 不超过当前点的初始值。
  • 计算结果:将所有点的跳跃次数累加,得到最少的起跳次数,并输出结果。
  • 这种方法确保了每个点的跳跃次数被合理计算,避免了不必要的跳跃,从而最小化了总的起跳次数。

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

    你可能感兴趣的文章
    Oracle:ORA-00911: 无效字符
    查看>>
    Text-to-Image with Diffusion models的巅峰之作:深入解读 DALL·E 2
    查看>>
    TCP基本入门-简单认识一下什么是TCP
    查看>>
    tableviewcell 中使用autolayout自适应高度
    查看>>
    Orcale表被锁
    查看>>
    org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned
    查看>>
    org.apache.ibatis.type.TypeException: Could not resolve type alias 'xxxx'异常
    查看>>
    org.apache.poi.hssf.util.Region
    查看>>
    org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /
    查看>>
    org.hibernate.HibernateException: Unable to get the default Bean Validation factory
    查看>>
    org.hibernate.ObjectNotFoundException: No row with the given identifier exists:
    查看>>
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
    查看>>
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
    查看>>
    org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded
    查看>>
    org.tinygroup.serviceprocessor-服务处理器
    查看>>
    org/eclipse/jetty/server/Connector : Unsupported major.minor version 52.0
    查看>>
    org/hibernate/validator/internal/engine
    查看>>
    SQL-36 创建一个actor_name表,将actor表中的所有first_name以及last_name导入改表。
    查看>>
    ORM sqlachemy学习
    查看>>
    Ormlite数据库
    查看>>