lazyxx

  • Description
    • Input
    • Output
    • 样例解释
  • 题目解法
    • 玄 玄 玄

Description

高三数学作业总共有n道题目要写(其实是抄),编号1…n,抄每道题所花时间不一样,抄第i题要花a[i]分钟。由于西西还要准备NOIP,显然不能成天做数学作业。所以西西决定只用不超过t分钟时间抄这个,因此必然有空着的题。每道题要么不写,要么抄完,不能写一半。一段连续的空题称为一个空题段,它的长度就是所包含的题目数。这样应付自然会引起数学老师的愤怒。数学老师发怒的程度(简称发怒度)等于最长的空题段长度。
现在,西西想知道他在这t分钟内写哪些题,才能够尽量降低数学老师的发怒度。由于西西很聪明,你只要告诉他发怒度的数值就可以了,不需输出方案。(Someone:那么西西怎么不自己写程序?西西:我还在抄别的科目的作业……)


Input

第一行为两个整数n,t,代表共有n道题目,t分钟时间。
以下一行,为n个整数,依次为a[1], a[2],… a[n],意义如上所述。

Output

仅一行,一个整数w,为最低的发怒度。

Sample Input
17 11
6 4 5 2 5 3 4 5 2 3 4 5 2 3 6 3 5

Sample Output
3

Data Constraint

Hint

样例解释

分别写第4,6,10,14题,共用时2+3+3+3=11分钟。空题段:1-3(长度为3), 5-5(1), 7-9(3),
11-13(3), 15-17(3)。所以发怒度为3。可以证明,此数据中不存在使得发怒度<=2的作法。
数据范围
60%数据 n<=2000
100%数据 0<n<=50000,0<a[i]<=3000,0<t<=100000000


题目解法

这道题以为是DP啊。
然后真的是DP,但是要优化,比赛的时候用了单调队列(还是没打线段树的我瑟瑟发抖。
比赛的时候调了一下,玄学地过了。

玄 玄 玄

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int q[50005],f[50005];
int a[50005];
int n,t;
int l=0,r,mid,ans=0,sum;
bool check(int n,int m,int mid)
{int head=0,tail=0,q[50005],f[50005];memset(q,0,sizeof(q)),memset(f,0,sizeof(f));for(int i=1;i<=n;++i){while(q[head]<i-mid-1&&head<=tail) head++;f[i]=f[q[head]]+a[i];while(f[q[tail]]>f[i]&&head<=tail) tail--;q[++tail]=i;}sum=1999999999;for(int i=n-mid;i<=n;++i) sum=min(sum,f[i]);return sum<=m;
}
int main()
{scanf("%d%d",&n,&t),r=n;for(int i=1;i<=n;++i) scanf("%d",&a[i]);while(l<=r){mid=(l+r)/2;if(check(n,t,mid)==true) r=mid-1,ans=mid;else l=mid+1;}printf("%d",ans);return 0;
}

1481. 偷懒的西西相关推荐

  1. JZOJ 1481. 偷懒的西西【推荐】

    题面 题目描述 高三数学作业总共有n道题目要写(其实是抄),编号1-n,抄每道题所花时间不一样,抄第i题要花a[i]分钟.由于西西还要准备NOIP,显然不能成天做数学作业.所以西西决定只用不超过t分钟 ...

  2. jzoj1481. 偷懒的西西

    Description 高三数学作业总共有n道题目要写(其实是抄),编号1..n,抄每道题所花时间不一样,抄第i题要花a[i]分钟.由于西西还要准备NOIP,显然不能成天做数学作业.所以西西决定只用不 ...

  3. 【jzoj1481】偷懒的西西

    Description 高三数学作业总共有n道题目要写(其实是抄),编号1..n,抄每道题所花时间不一样,抄第i题要花a[i]分钟.由于西西还要准备NOIP,显然不能成天做数学作业.所以西西决定只用不 ...

  4. 金山网盾监测:游戏玩家下载西西游戏外挂会中大量***

    金山网盾监测:游戏玩家下载西西游戏外挂会中大量*** 据金山毒霸安全实验室监测,6月17日,金山网盾云端数据突然监测到西西游戏网的当日外挂下载均报危险.西西游戏网是深受外挂玩家欢迎的游戏外挂下载网站, ...

  5. linux 文泉驿正黑字体,文泉驿字体系列打包下载-文泉驿字体下载-西西软件下载...

    文泉驿字体是一套免费开源的字体,现在的很多设计师在设计商业产品时总是要考虑字体版权问题,而商业字体的授权价格昂贵让很多人望而却步.这里西西推荐的这套文泉驿字体是开源字体,比较常用语linux系统中,大 ...

  6. mysql自带的卸数工具_数据库卸数必备工具下载-数据库数据导出工具(DBexport)下载v1.3官方版-西西软件下载...

    DBexport是一款专业的数据库数据导出工具,支持多数据源导出,目前已测试Oracle,MySQL,SQL_SERVER无明显BUG,目前支持图片种的数据库,支持扩展功能,只要有对应的数据库jar和 ...

  7. ai修复照片软件是哪个软件_AI照片修复免费版-AI照片修复软件下载v1.1.0安卓版-西西软件下载...

    AI照片修复软件是一款专业的照片图片修复处理工具,可以帮助用户将旧照片.老照片以及低像素的照片进行修复,软件界面赶紧操作简单,适合没有经验的伙伴修复使用,除此之外,还有各种美化效果,轻松将照片上色.换 ...

  8. android坐标画图软件下载,地图坐标app下载-地图坐标软件下载v4.8.15 安卓版-西西软件下载...

    地图坐标app是一款免费好用的地图坐标显示软件,用户只需要地图上轻轻一点就可以得知目标位置的经纬度和地址等信息,同时还能通过短信等方式与他人共享.此外,地图坐标app还为用户提供了距离测量.当前卫星导 ...

  9. mv150us无线网卡驱动linux,水星MW150US2.0驱动-水星MW150US无线网卡驱动下载v2.0 官方最新版-西西软件下载...

    水星MW150US无线网卡驱动是一款适用于MW150US V2.0版本无线网卡的驱动程序,这款网卡小巧方便携带,也可作多种用途,电视接收信号,家中的台式机模拟AP,都非常好用.这里西西给大家提供的这款 ...

最新文章

  1. Python 基础 —— str
  2. html宽度满屏,宽度满屏的代码怎么样写?
  3. The Greatest C++ project
  4. tcp协议可以提供什么服务器,什么是TCP协议?
  5. 阿里云搭建 ftp 服务器
  6. OpenID实现多系统整合的用户同步解决方案
  7. 怎么用计算机自己做动画片,怎样用电脑制作动画,电脑动画制作怎么做
  8. MySQL函数及用法
  9. 产品经理|需求分析(附《需求池表格》下载)
  10. 关于light7使用路由经验总结及踩的坑
  11. 旋转矩阵中6保6_双色球旋转矩阵(9-12)个号中6保5公式
  12. CS5801HDMI转eDP/DP转换芯片资料|CS5801规格书
  13. java hypot_Java Math类静态double hypot(double d1,double d2)与示例
  14. hdu4417 Super Mario(树状数组+离线区间操作)
  15. Linux查看so文件信息
  16. Python语言学习讲解十:列表推导式
  17. php试题判断ip是否合法,php检测IP地址是否合法的方法
  18. oracle number存储小数
  19. 哈工大pyltp安装和使用方法
  20. [007]爬虫系列 | 猿人学爬虫攻防大赛 | 第五题: js混淆 乱码增强(中)

热门文章

  1. ESET激活码,可用。
  2. SpringBoot 全局异常拦截器
  3. 真无线耳机哪个牌子好用?2023便宜好用的无线耳机推荐
  4. Linux的网络参数设置
  5. uni-app快速开发微信小程序、h5、和app
  6. python networkx教程_Python 学习教程之networkx
  7. TypeError: Cannot handle this data type: (1, 1, 128), |u1
  8. Leetcode 742. Closest Leaf in a Binary Tree
  9. continue语句只用于循环语句中_人生苦短,我爱Python011——循环结构
  10. 英雄使命服务器维修,《英雄使命》明天开启测试 10分钟极速体检