CF279B Books
题目大意:
你有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相关推荐
- Codeforces Round #699 (Div. 2) E.Sorting Books(贪心+DP / 线段树)超高质量题解,看不懂来打我 ~
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 E - Sorting Books 一排书架上有 nnn 本书排成一排,每本书上有一个颜色 aia_i ...
- BOOKS STORE OPENCART 自适应主题模板 ABC-0093
2019独角兽企业重金招聘Python工程师标准>>> BOOKS STORE OPENCART 自适应主题模板 ABC-0093 模板特性 兼容浏览器 FireFox 1.5-3. ...
- Error: No module named books
http://djangobook.py3k.cn/2.0/chapter05/ 输入 python manage.py validate, 提示 No module named books 只要将s ...
- Free Download Top 100 Hacking Books
2019独角兽企业重金招聘Python工程师标准>>> Kali Linux – Assuring Security by Penetration Testing Network A ...
- 推荐两本旧书 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 ...
- Sicily 6768. Log Books 解题报告
题目传送门:6768. Log Books 思路: 1. 这道题比较麻烦的是输入,时间的格式如12:04 ,这样后面再计算加减的时候会有问题,所以干脆转化成分钟,没一个时刻用该时刻是当天的第多少分钟表 ...
- [Flask+Vue]Books全栈应用
Flask和Vue.js构建全栈单页面web应用[通过Flask开发RESTful API] 路小飞 退乎(假的) 关注 146 人赞同了该文章 前言: 看了一些国外的关于介绍flask和vue的前 ...
- CodeForces - 1481E Sorting Books(贪心+dp)
题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列,每次操作可以将任意一本书放到序列的末尾,问最少需要操作多少次,才能使得相同的数字挨在一起 题目分析:不难看出,对每个位置的数都操作一次,是 ...
- 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 ...
最新文章
- WPF中Auto与*的差别
- Java 对象的生命周期
- pcie固态硬盘_主板2个M. 2接口,哪个m2插槽是与CPU直连?总结不得不说PCIE知识
- 【Django】用pycharm初学习使用Django
- 台式无线网卡管理服务器,台式电脑设置wifi上网
- 基于单片机步进电机ppt答辩_基于单片机的步进电机式汽车仪表的设计(含电路原理图,程序)...
- 10.2829(NOIP模拟修正总结)
- IDEA14创建Maven管理的Java Web项目
- 计算机科学中最重要的 32 个算法
- SingleSignOn的配置和说明
- dubbo之SPI扩展机制注解:@Extension注解的作用
- Atitit 推广之道 attilax著艾龙著 1. 概念呢	2 1.1. 目的	2 2. 与网络推广相近的概念有网络营销(搜索引擎营销、邮件营销、论坛营销、网站推广、网络广告、SNS营销、微信营销
- php用户注册登录6,【php】ThinkPHP6通过Ucenter实现注册登录
- 绿卡日记:2020-11-20
- 网站权重是什么意思?
- python趣味编程入门与实战技巧_Python趣味编程入门与实战
- 迷宫求解【穷举求解法】
- 【语音识别】基于MFCC的小波变换DTW实现说话人识别matlab代码
- EasyExcel根据模板导出动态修改sheet名称
- Mongdb 删除重复数据python-pymongo实现