这题就是从1到n点进行遍历,对未加热的点找到最远的能加热到这个点的点,还是看代码讲吧

#include"bits/stdc++.h"
using namespace std;
const int inf=0x3f3f3f3f;
typedef long long LL;
int a[],ans;
int main(){
int n,m;
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
for(int i=;i<=n;ans++){
//让j等于能加热到i点的最远值,能加热到i点的范围是[j-m+1,j+m-1]
//但是如果j+m-1大于n,那么(n,j+m-1]这段要舍弃;如果j-m+1小于1,那么[j-m+1,1)这段也一样要舍弃;
int j=i+m-;if(j>n)j=n;
while(j&&j>j-m){
//在能加热到i点的范围内找到有加热器的最大点;
if(a[j]==)break;
j--;
}
//如果在这个范围内没有找到1,那么i点必然加热不到,可以直接输出-1并结束程序了
if(!j||j<=j-m){
puts("-1");
return ;
}
//否则让i增加到j加热不到的最小值也就是j+m;
i=j+m;
}
printf("%d",ans);
return ;
}

最新文章

  1. Thread比Task多出的无法代替的部分
  2. mvn archetype:create和mvn archetype:generate
  3. 【BZOJ 1911】【APIO 2010】特别行动队
  4. 动手动脑及java程序之用消息框进行数的运算
  5. 【bzoj1050】 旅行comf
  6. ARM汇编中的标号
  7. Codeforces Gym 100733J Summer Wars 线段树,区间更新,区间求最大值,离散化,区间求并
  8. struts2源代码学习之初始化(一)
  9. [HMLY]7.iOS MVVM+RAC 从框架到实战
  10. Java中String转换Double类型 Java小数点后留两位
  11. 【LeetCode】225. Implement Stack using Queues
  12. spiral matrix 螺旋矩阵
  13. 手动撸个Android雷达图(蜘蛛网图)RadarView
  14. MaxCompute安全管理指南-基础篇
  15. win10添加右键打开命令窗口
  16. 页面适配的小栗子 - github
  17. Dynamics AX 中的图片处理
  18. 十二省NOI“省选”联考模测(第二场)A抽卡大赛
  19. 第12月第2天 uiscrollview _adjustContentOffsetIfNecessary 圆角
  20. async 和 await的前世今生 (转载)

热门文章

  1. AttributeError: module &#39;selenium.webdriver.common.service&#39; has no attribute &#39;Service&#39;
  2. 基于Token的身份验证
  3. MBProgressHUD覆盖键盘
  4. 估计量|估计值|矩估计|最大似然估计|无偏性|无偏化|有效性|置信区间|枢轴量|似然函数|伯努利大数定理|t分布|单侧置信区间|抽样函数|
  5. 3.docker machine 连接 aliyun 远程docker 服务器
  6. 使用python列出目录下的所有文件
  7. ServletUtils
  8. Android开发学习1----AndroidStudio的安装、创建第一个Android Studio文件、Android Studio界面介绍和HelloWord!
  9. GPIO外部中断
  10. 洛谷-P3796-【模板】AC自动机(加强版)