题目链接

题目读了好久。。
题意:
有一个人新办了一张信用卡,初始账户上没有钱。给出两个数字q,d。
q是操作次数。
操作分为三种:

  1. 当aiaia_i为正值时表示信用卡增加了aiaia_i元。
  2. 当aiaia_i为负值时表示信用卡支出了aiaia_i元。
  3. 当aiaia_i为0时,进行一次查询,查询时信用卡上的钱不能是负值。

在每次操作前,这个人可以选择去银行充钱,但是无论时充钱还是怎么样,银行卡上的钱一定不能超过d,如果超过就输出-1。
问:此人最少需要去几次银行?

这道题应该可以看出来是一道贪心的题目。主要突破点就是充钱的范围是一个区间,但是这一定会有一个最大值和最小值,我们时刻更新最大值和最小值,如果某一时刻,最小值都大于d了,那么就说明无论如何此时卡上的钱都会大于d,那么就是输出-1。

最重要的贪心思想就体现在mmax和mmin的更新处。

AC代码:

#include <bits/stdc++.h>
using namespace std;int main(int argc, char const *argv[])
{int n,d,x,res = 0;scanf("%d %d",&n,&d);int mmax = 0,mmin = 0;while(n--){scanf("%d",&x);if(x == 0){if(mmax < 0){mmax = d;res++;}mmin = max(0,mmin);    //只有最大值跟新时res需要自增,因为mmin不可能大于mmax,所以说在之前充钱时,存在某种情况使得此时mmin为0。}mmax += x;mmin += x;mmax = min(mmax,d);if(mmin > d){puts("-1");return 0;}}printf("%d\n", res);return 0;
}

【CodeForces】893 - D Credit Card (贪心)相关推荐

  1. Codeforces 893 D Credit Card 贪心 思维

    题目链接: http://codeforces.com/contest/893/problem/D 题目描述: 每天晚上一个数值a,如果a>0表示今天收入a元,<0表示亏损a元,=0表示去 ...

  2. cf#401(Div. 2)B. Game of Credit Card(田忌赛马类贪心)

    题干: After the fourth season Sherlock and Moriary have realized the whole foolishness of the battle b ...

  3. codeforces Gym 100338E Numbers (贪心,实现)

    题目:http://codeforces.com/gym/100338/attachments 贪心,每次枚举10的i次幂,除k后取余数r在用k-r补在10的幂上作为候选答案. #include< ...

  4. TensorFlow for Hackers (Part VII) - Credit Card Fraud Detection using Autoencoders in Keras

    It's Sunday morning, it's quiet and you wake up with a big smile on your face. Today is going to be ...

  5. Educational Codeforces Round 24 E. Card Game Again(双指针)

    题目链接:Educational Codeforces Round 24 E. Card Game Again 题意: 给你n个数和一个数k. 现在每次可以拿掉前x个数,后y个数,剩下的数的乘积要能被 ...

  6. Python:实现测试信用卡号码有效性credit card validator的算法(附完整源码)

    Python:实现测试信用卡号码有效性credit card validator的算法 def validate_initial_digits(credit_card_number: str) -&g ...

  7. 论文 | Credit Card Fraud Detection Using Convolutional Neural Networks

    本篇博客继续为大家介绍一篇论文,也是关于用卷积神经网络 CNN 来进行信用卡欺诈检测的. 论文信息 论文题目:Credit card fraud detection using convolution ...

  8. Credit Card Fraud Detection(信用卡欺诈检测相关数据集)

    原文: Credit Card Fraud Detection Anonymized credit card transactions labeled as fraudulent or genuine ...

  9. (原创)北美信用卡(Credit Card)个人使用心得与总结(个人理财版) [精华]

    http://forum.chasedream.com/thread-766972-1-1.html 本人2010年 8月F1 二度来美,现在credit score 在724-728之间浮动,最高的 ...

最新文章

  1. 图解插入排序--直接插入排序
  2. 06. 用css实现三角形
  3. node 微信授权 获取openid
  4. java 转xml 变成两根下划线_XStream将java对象转换为xml时,对象字段中的下划线“_”,转换后变成了两个...
  5. Java学习正嗨Day2!
  6. 回文字符串—回文子串—暴力破解法
  7. 送10本今年最火的《动手学深度学习》
  8. [NLP]OpenNLP标记器的使用
  9. SpringBoot+zk+dubbo架构实践(一):本地部署zookeeper
  10. 双曲调频信号matlab仿真,matlab 实现线性调频信号以及分析处理
  11. 毕业设计 基于单片机的智能蓝牙密码锁设计与实现
  12. 超声延时聚焦原理及算法仿真
  13. 苹果电脑怎么登录邮件服务器,Mac系统中的邮箱怎么创建126邮箱帐户?
  14. 用Cocos2d-x-3.0及Box2d预测物体弹道轨迹
  15. Pta题目集:汽车加油问题 (20 分)
  16. 计算机二级工作表不会,计算机二级Office:Excel工作簿与工作表操作
  17. C#中BackgroundImage与Image的区别
  18. 连夜干出来一个自动处理【支付宝交易支付投诉管理系统】,支持多商户
  19. 哪些日本人看来很普通的日文词汇,在我们眼里会很高大上?
  20. 终端报错PTY allocation request failed on channel 0

热门文章

  1. CentOS8 系统时间同步设置
  2. GD32E23x的USART被断点打断后重新运行,会一直进入中断的问题
  3. HUAWEI HiAI常见FAQ小贴士
  4. 33. 实现桌球的反弹
  5. Nginx *nix下安装方式
  6. 计算机 我们一起学猫叫歌词,抖音短视频我们一起学猫叫是什么歌
  7. 50道逻辑题,你能想出多少?
  8. 电路设计中的VDD、VCC、VSS
  9. 全网最全java开发环境下载-jdk-tomcat-maven-eclips-idea
  10. 无限火力开启服务器炸了,LOL无限火力:玩家发现这6个英雄成型后,互相单挑,服务器会爆炸...