题目大意:

你有n本书,读第i本书需要a[i]分钟,你现在有t分钟。你读书的方式是这样的:找出任意一个数x,并按编号从小到大的顺序读第x~n本,如果你读完了第n本,那么读书结束。如果你准备要读第i本书,但剩下的时间小于a[i](也就是读不完这本书),那么你就不可以开始读这本书了,并且读书结束。换句话说,如果你读一本书,就必须读完,否则就不能读。求最多能读几本书。

基本思路:可以用队列来维护一下能够连续读的书。假定每一本书为一个元素,sum代表队列中元素的总和,res表示队列中的元素的个数,maxx为最终结果。从1到n依次遍历每个元素,如果sum+a[i]的值<=t,便将元素入队,并更新res的值,同时用max函数更新maxx的值。当(while)sum + a[i] > t 并且队列非空时,将队头元素q.front()出队,并更新sum,res的值。

#define _CRT_SECURE_NO_WARNINGS//解决scanf不安全问题
#include <iostream>
#include <algorithm>
#include <unordered_map>
#include <string>
#include <list>
#include <stack>
#include <queue>
#include <deque>
#include <vector>
#include <map>
#include <set>
#include <cstring>
#include <cmath>
using namespace std;
typedef long long ll;
typedef double db;
#define lowbit(x) ((x) & -(x))//找到x的二进制数的最后一个1
#define inf 0x3f3f3f3f
int n, t;
int a[100005] = { 0 };
queue<int>q;
int main()
{std::ios::sync_with_stdio(0);cin >> n >> t;for (int i = 1; i <= n; i++)cin >> a[i];int maxx = 0;int res = 0;ll sum = 0;for (int i = 1; i <= n; i++){if (sum + a[i] <= t){sum += a[i];res++;maxx = max(maxx, res);q.push(a[i]);}else{while (sum + a[i] > t && !q.empty()){sum -= q.front();res--;q.pop();maxx = max(maxx, res);} if (sum + a[i] <= t){q.push(a[i]);sum += a[i];res++;maxx = max(maxx, res);}}}cout << maxx << endl;return 0;
}

CF279B Books相关推荐

  1. Codeforces Round #699 (Div. 2) E.Sorting Books(贪心+DP / 线段树)超高质量题解,看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 E - Sorting Books 一排书架上有 nnn 本书排成一排,每本书上有一个颜色 aia_i ...

  2. BOOKS STORE OPENCART 自适应主题模板 ABC-0093

    2019独角兽企业重金招聘Python工程师标准>>> BOOKS STORE OPENCART 自适应主题模板 ABC-0093 模板特性 兼容浏览器 FireFox 1.5-3. ...

  3. Error: No module named books

    http://djangobook.py3k.cn/2.0/chapter05/ 输入 python manage.py validate, 提示 No module named books 只要将s ...

  4. Free Download Top 100 Hacking Books

    2019独角兽企业重金招聘Python工程师标准>>> Kali Linux – Assuring Security by Penetration Testing Network A ...

  5. 推荐两本旧书 recommend two CM books,which are not up-to-date

    Recently, some person ask me some question about CM. I want to recommend two CM books,though they ar ...

  6. Sicily 6768. Log Books 解题报告

    题目传送门:6768. Log Books 思路: 1. 这道题比较麻烦的是输入,时间的格式如12:04 ,这样后面再计算加减的时候会有问题,所以干脆转化成分钟,没一个时刻用该时刻是当天的第多少分钟表 ...

  7. [Flask+Vue]Books全栈应用

    Flask和Vue.js构建全栈单页面web应用[通过Flask开发RESTful API] 路小飞 退乎(假的) ​关注 146 人赞同了该文章 前言: 看了一些国外的关于介绍flask和vue的前 ...

  8. CodeForces - 1481E Sorting Books(贪心+dp)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列,每次操作可以将任意一本书放到序列的末尾,问最少需要操作多少次,才能使得相同的数字挨在一起 题目分析:不难看出,对每个位置的数都操作一次,是 ...

  9. Books Queries(codeforces 1066)

    You have got a shelf and want to put some books on it. You are given q queries of three types: L id ...

最新文章

  1. WPF中Auto与*的差别
  2. Java 对象的生命周期
  3. pcie固态硬盘_主板2个M. 2接口,哪个m2插槽是与CPU直连?总结不得不说PCIE知识
  4. 【Django】用pycharm初学习使用Django
  5. 台式无线网卡管理服务器,台式电脑设置wifi上网
  6. 基于单片机步进电机ppt答辩_基于单片机的步进电机式汽车仪表的设计(含电路原理图,程序)...
  7. 10.2829(NOIP模拟修正总结)
  8. IDEA14创建Maven管理的Java Web项目
  9. 计算机科学中最重要的 32 个算法
  10. SingleSignOn的配置和说明
  11. dubbo之SPI扩展机制注解:@Extension注解的作用
  12. Atitit 推广之道 attilax著艾龙著 1. 概念呢 2 1.1. 目的 2 2. 与网络推广相近的概念有网络营销(搜索引擎营销、邮件营销、论坛营销、网站推广、网络广告、SNS营销、微信营销
  13. php用户注册登录6,【php】ThinkPHP6通过Ucenter实现注册登录
  14. 绿卡日记:2020-11-20
  15. 网站权重是什么意思?
  16. python趣味编程入门与实战技巧_Python趣味编程入门与实战
  17. 迷宫求解【穷举求解法】
  18. 【语音识别】基于MFCC的小波变换DTW实现说话人识别matlab代码
  19. EasyExcel根据模板导出动态修改sheet名称
  20. Mongdb 删除重复数据python-pymongo实现

热门文章

  1. 1102 教超冠军卷(20分) -- 测试点1
  2. Python 爬虫学习08 将爬取到的数据保存到SQL
  3. 《西游记之大圣归来》
  4. 新浪微博与腾讯微信苦战 用户黏性成制胜杀手锏
  5. 女神节, 数说奥斯卡女神们 : “惊艳了时光 , 温柔了岁月”
  6. SpringBoot+Mysql大学班级管理系统源码82358
  7. xbox无法登陆解决方法
  8. upload-labs详细教程
  9. 文件服务器和nas存储,nas存储 文件服务器
  10. 哈希的应用 -- 布隆过滤器