题意:

一个长为n的河,中间有m个木台,每个木台长为ci,你想从河的左岸跳到右岸,每次你可以往前跳的范围为[x + 1, x + d],你可以移动木台使得可以跳跃,但是木台之间的相对顺序不得改变。

现在问你是否可以跳到右岸?如果不可以输出NO,如果可以输出YES以及河的每个单元所对应的木台序号,如果没有对应木台则为0。

题解:

先将所有木台统一放置到河的最右岸,每个木台之间无空隙,最后一个木台紧贴右岸。

然后判断每一次最大跳跃长度下是否可以成功跳跃(即跳到木台或者右岸上)

ok:输出

no:从最左边的木台开始将其移动到单次跳跃可以到达的最远位置

如果木台放置完仍不能到达右岸,那么不可跳到右岸,否则可以

代码:

#include<bits/stdc++.h>using namespace std;const int M = 1010;
int c[M], pos[M];
int n, m, d;int main()
{scanf("%d%d%d", &n, &m, &d);int sum = 0;for(int i = 1; i <= m; i++){ scanf("%d", &c[i]);sum += c[i];}for(int i = n - sum + 1, j = 1; j <= m; j++){pos[j] = i;i += c[j];}int x = 0, g = 1, flag = 0;while(x < n && g <= m){if(x + d < pos[g]){pos[g] = x + d;x = pos[g] + c[g] - 1;g++;   }else break;if(x + d >= n + 1) break;if(x < n && g == m + 1) {flag = 1; break;} }if(flag) puts("NO");else{ puts("YES");for(int i = 1, j = 1; i <= n; i++){if(i == pos[j]){while(i <= pos[j] + c[j] - 1){ printf("%d%c", j, " \n"[i == n]);i++;}i--;j++;}else printf("0%c", " \n"[i == n]);}} return 0;
}

Codeforces Round #598 (Div. 3) C.Platforms Jumping相关推荐

  1. Codeforces Round #598 (Div. 3) F. Equalizing Two Strings 思维 + 逆序对

    传送门 文章目录 题意: 思路: 题意: 给你两个长度为nnn的串a,ba,ba,b,每次可以同时翻转a,ba,ba,b中任意一段长度为L(1≤L≤n)L(1\le L\le n)L(1≤L≤n)的子 ...

  2. Codeforces Round #598 (Div. 3) E. Yet Another Division Into Teams dp + 输出方案

    传送门 文章目录 题意: 思路: 题意: 给你一个长度为nnn的序列aaa,你需要将其分成若干组,每组的价值为max⁡(ai)−min(ai)\max(a_i)-min(a_i)max(ai​)−mi ...

  3. Codeforces Round #797 (Div. 3)无F

    Codeforces Round #797 (Div. 3)无F 这打的也太屎了,白天把G补了才知道简单的很,但f还是没头绪呜呜呜 Problem - A - Codeforces Given the ...

  4. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  5. Codeforces Round #563 (Div. 2)/CF1174

    Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...

  6. 构造 Codeforces Round #302 (Div. 2) B Sea and Islands

    题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...

  7. Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...

  8. Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...

  9. Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...

最新文章

  1. 基于Python的HTTPS协议模拟登陆+爬取页面
  2. ASP.NET AJAX环境的简单构建(ZT)
  3. Servlet的Cookie值保存与获取
  4. Python基础(6)_函数
  5. 十二届 - CSU 1803 :2016(同余定理)
  6. Android--通知之Toast
  7. 网关 Spring Cloud Gateway
  8. (18)System Verilog运算精度补齐示例
  9. 利用 QQWry.Dat 实现 IP 地址高效检索(PHP)
  10. EGit/User Guide
  11. 正交矩阵和Gram-Schmidt正交化
  12. Maximum call stack size exceeded 如何解决?
  13. 单片机c语言直接寻址 间接寻址,pic单片机教程之数据存储器的直接间接寻址方式...
  14. Java多维数组length
  15. HTTP协议以及返回状态码
  16. MySQLdb 安装小结
  17. 初秋进补 粥汤大对决
  18. Facebook工程师告诉你,如何正确的阅读《算法导论》(CLRS)?
  19. Django富文本编辑——Ckeditor的配置、使用和踩坑(应该全)
  20. linux 渗透工具_适用于Linux的十大最佳渗透测试工具

热门文章

  1. 多媒体课件是不是计算机软件,使用Authorware 开发的《多媒体技术》课件属于( )。...
  2. 大一微积分笔记整理_微积分大一基础知识经典讲解
  3. 【量化】基差策略(以甲醇为例)
  4. 64位 regsrv win10_怎么把Win10注册表恢复初始?
  5. 第六章.数据结构与算法基础
  6. 2019年12月的第一天,又是新的开始
  7. 计算机配置文件保存到哪里,微信文件保存在哪里【设置教程】
  8. Strapi安装遇到的问题及解决
  9. Kivy下添加图片来源表示方法
  10. 速卖通关键词挖掘工具_sem竞价怎么利用工具挖掘更多的关键词?拓词技巧!