https://codeforces.com/contest/1154/problem/D

题意:有个机器人在0位置处,现在要走到位置n。机器人现在有一个电池容量为a,还有一个蓄电池容量为b(一开始都是满的)。数组的值代表此处有没有光照。走一格耗1电量,如果机器人使用电池行走并在太阳下时,蓄电池电量+1.(不能超过容量),求最远的行走距离

题解:思维+模拟

有些翻译问题;在这里我们认为,电池是不能充电,蓄电池是可以充电的

1、一般情况下、遇到0,先用蓄电池,蓄电池没有电再用电池;(可再生资源和不可再生资源的问题)

2、si==1的是一般情况下、用电池通过,蓄电池充电;

3、si==1并且蓄电池满的情况下,蓄电池通过,因为你电池通过,蓄电池也不能充电,还不如用掉,为后面的充电留出空间;

/*
*@Author:   STZG
*@Language: C++
*/
#include <bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<string>
#include<vector>
#include<bitset>
#include<queue>
#include<deque>
#include<stack>
#include<cmath>
#include<list>
#include<map>
#include<set>
//#define DEBUG
#define RI register int
#define endl "\n"
using namespace std;
typedef long long ll;
//typedef __int128 lll;
const int N=200000+10;
const int M=100000+10;
const int MOD=1e9+7;
const double PI = acos(-1.0);
const double EXP = 1E-8;
const int INF = 0x3f3f3f3f;
int t,n,m,k,p,l,r,u,v;
int ans,cnt,flag,temp,sum;
int a,b,s[N];
char str;
struct node{};
int main()
{
#ifdef DEBUGfreopen("input.in", "r", stdin);//freopen("output.out", "w", stdout);
#endif//ios::sync_with_stdio(false);//cin.tie(0);//cout.tie(0);//scanf("%d",&t);//while(t--){scanf("%d%d%d",&n,&b,&a);int A=a,B=b;for(int i=1;i<=n;i++){scanf("%d",&s[i]);}for(int i=1;i<=n;i++){if(s[i]){if(A==a){A--;}else if(B){B--;A=min(A+1,a);}else if (A) {A--;}else{cout<<i-1<<endl;return 0;}}else{if(A||B){if(A)A--;else B--;}else{cout<<i-1<<endl;return 0;}}//cout<<B<<A<<endl;}cout<<n<<endl;//}#ifdef DEBUGprintf("Time cost : %lf s\n",(double)clock()/CLOCKS_PER_SEC);
#endif//cout << "Hello world!" << endl;return 0;
}

Walking Robot相关推荐

  1. Yet Another Walking Robot CodeForces - 1296C

    There is a robot on a coordinate plane. Initially, the robot is located at the point (0,0)(0,0). Its ...

  2. C#LeetCode刷题之#874-模拟行走机器人​​​​​​​(Walking Robot Simulation)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4038 访问. 机器人在一个无限大小的网格上行走,从点 (0, 0 ...

  3. Leetcode 874. Walking Robot Simulation

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 1. Description 2. Solution class Solution { public:int ro ...

  4. LeetCode.874-走路机器人模拟(Walking Robot Simulation)

    这是悦乐书的第335次更新,第360篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第205题(顺位题号是874).网格上的机器人从点(0,0)开始并朝北.机器人可以接收三 ...

  5. Codeforces Round #552 (Div. 3)D、E题解

    D. Walking Robot 题意 机器人在一维坐标轴上从0走到x,中途可以在有光的地方可以选择给太阳能电池充电,每次移动都要消耗一单位电,蓄电池容量为a,太阳能电池容量为b,一开始都是满电,问机 ...

  6. 设计模式示例_状态设计模式示例

    设计模式示例 本文是我们名为" Java设计模式 "的学院课程的一部分. 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们. 您将了解模式如此重要的原因 ...

  7. 基础算法 —— 模拟思维

    [概述] 模拟,是根据实际问题建立模型,模拟实际按程序走一遍,最终求出答案. 思维,则是与逻辑思维有关,其需要针对题意.数据范围等抽丝剥茧抽离出有用的信息,从而得出一个结果. 对于一般的模拟,直接根据 ...

  8. C#LeetCode刷题-贪心算法

    贪心算法篇 # 题名 刷题 通过率 难度 44 通配符匹配 17.8% 困难 45 跳跃游戏 II 25.5% 困难 55 跳跃游戏 30.6% 中等 122 买卖股票的最佳时机 II C#LeetC ...

  9. Paul Graham:撼动硅谷的人(译文)

    为<黑客与画家>写"译者序",遇到一个棘手的问题. "应该如何介绍Paul Graham,才能让中国读者了解,这是一个在美国互联网界如日中天的教父级人物?&q ...

最新文章

  1. 解密Redis持久化
  2. mxnet基础到提高(53)-ndarray与numpy之间转换
  3. 「Python」queue库简易教程
  4. PPT怎么在线转视频?
  5. ucosii中消息队列、消息邮箱、信号量的区别
  6. 错误解决:常出现在iis搭建网站
  7. 论文阅读:FaceBoxes: ACPUReal-timeFaceDetectorwithHighAccuracy
  8. Vue.js(2.x)之插值
  9. 【Qt学习笔记】10.主窗口 The Main Window
  10. 快速了解Linux curl命令
  11. 12.06课堂笔记以及作业
  12. java用户登录进入系统_Java CRM系统用户登录功能实现代码实例
  13. java 拦截器 排除_java – 如何将拦截器添加到除一个或两个以外的所有API请求?...
  14. 【OpenGrok代码搜索引擎】一、OpenGrok简介
  15. itext7学习笔记杂谈系列2——在itext7中添加中文(其他字体)和字体相关事
  16. PwC普华永道——招聘
  17. 计算机ppt用快捷键,计算机_电脑操作快捷键大全祥解.ppt
  18. Hexo博客配置笔记
  19. 雨尘SEO静态页面生成系统源码V1.3版
  20. 答案原文及理解解释《解析解释守株待兔死脑筋,旁门左道不正规是什么》什么意思含义

热门文章

  1. 计算机基础7试题,大学计算机应用基础试题
  2. php抓取运动步数,使用PHP抓取微博数据
  3. ab753变频器参数怎么拷贝到面板_技术贴:100吨连铸安川变频器的更换
  4. oracle删除分区空间,Oracle 11g维护分区(三)——Dropping Partitions
  5. linux网卡O I流量查询,查看linux server网络I/0流量的shell脚本
  6. 拆分文件_领导让把工作表拆分每个文件,我花半个小时,同事1分钟搞定了
  7. equals变量在前面和后面的区别,equals已知(存在实际值)的变量在前的好处
  8. java招投标网站源码_基于jsp的招标系统-JavaEE实现招标系统 - java项目源码
  9. pip安装deb_趟坑:使用pip安装TensorFlow
  10. java中注解的解析_【Java】中的注解与注解解析器