[UVALive 2678] Subsequence
图片加载可能有点慢,请跳过题面先看题解,谢谢
在切水题的道路上狂奔,一发不可收拾。。。
这道题好像不用写什么题解吧,吐个槽什么的算了
一眼题,大佬们都不屑于做,只有我这种弱菜才来写这种题目玩儿
记个前缀和,直接二分一个长度, \(XJB\) 搞一下就好了
思考时间: \(1s\) ,代码时间 \(1min\) 。
//made by Hero_of_Someone
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#define ll long long
#define il inline
#define RG register
using namespace std;
il int gi(){ RG int x=0,q=1; RG char ch=getchar(); while( ( ch<'0' || ch>'9' ) && ch!='-' ) ch=getchar();
if( ch=='-' ) q=-1,ch=getchar(); while(ch>='0' && ch<='9') x=x*10+ch-48,ch=getchar(); return q*x; }
int T,n,s,a[100010];
ll sum[100010];
il void init(){
memset(sum,0,sizeof(sum));
for(RG int i=1;i<=n;i++) a[i]=gi();
for(RG int i=1;i<=n;i++) sum[i]=sum[i-1]+a[i];
}
il bool ck(int len){
for(RG int i=len;i<=n;i++) if(sum[i]-sum[i-len]>=s) return 1;
return 0;
}
il void work(){
RG int l=1,r=n,ans=0;
while(l<=r){
RG int mid=(l+r)>>1;
if(ck(mid)) ans=mid,r=mid-1;
else l=mid+1;
}
printf("%d\n",ans);
}
int main(){ while(scanf("%d%d",&n,&s)!=EOF){ init(); work(); } return 0; }
[UVALive 2678] Subsequence的更多相关文章
- 【UVALive】2678 Subsequence(尺取法)
题目 传送门:QWQ 分析 一开始没看到都是正整数根本不会做...... 看到了就是水题了.(但还是sb WA了一发) 尺取法搞一搞 代码 #include <bits/stdc++.h> ...
- LA 2678 Subsequence(二分查找)
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...
- LA 2678 Subsequence
有一个正整数序列,求最短的子序列使得其和大于等于S,并输出最短的长度. 用数组b[i]存放序列的前i项和,所以b[i]是递增的. 遍历终点j,然后在区间[0, j)里二分查找满足b[j]-b[i]≥S ...
- UVALive 2678 大于s的最短子序列和
input n s 10<=n<=100000,s<1e9 a1 a2 ... an ai<=10000 output 大于s的最短子序列和的长度,没有输出0 #includ ...
- UVALive - 2678 二分/尺取
题意:求最小的长度L满足该长度上的元素和大于等于S 最近dp做多了总有一种能用dp解决一切的错觉 二分长度解决 #include<iostream> #include<algorit ...
- LA 2678 – Subsequence
看到限时3S,自己写了一个二重循环的,然后华丽的 TLE...T T 瞄了瞄书上,作者的思路果然是很好.膜拜中. 他只枚举了终点,然后用二分查找. 用到了lower_bound函数,这个lower_b ...
- UVALive 2678 利用序列的前缀来减少时间复杂度
题意很简单,在一串正整数序列中找一个连续的子序列使该序列和大于等于一个已知量S,但要求序列长度最短,通常喜欢暴力枚举 这个题目跟大白书之前的一个题目很像,在数列A中 求 Ai-Aj最大 并且 i< ...
- [LeetCode] Arithmetic Slices II - Subsequence 算数切片之二 - 子序列
A sequence of numbers is called arithmetic if it consists of at least three elements and if the diff ...
- [LeetCode] Is Subsequence 是子序列
Given a string s and a string t, check if s is subsequence of t. You may assume that there is only l ...
随机推荐
- websocket protocal
same-orgins:浏览器同源策略的安全模型 持久化协议 双向双工 多路复用, 同时发信息 区别HTTP连接特点: http只能由客户端发起,一个request对应一个respon ...
- 2.4 Oracle之DCL的SQL语句之用户权限以及三大范式
DCL (Data Control Language,数据库控制语言)用于定义数据库权限 一.用户权限 1.1 建立用户以及授权: Eg :CREATE USER 用户名 IDENTIFIED ...
- 使用过滤器解决JSP页面的乱码问题
乱码详情 总结:讨论了使用GET和POST方法,控制台和JSP页面显示的问题. 最终发现:在servlet或者过滤器中添加:request.setCharacterEncoding("ut ...
- CentOS删除安装的程序
以mysql举例: 首先查询安装包: rpm -qa|grep mysql 查询到的一个结果为:mysql-community-libs-5.7.13-1.el6.x86_64 yum 删除 yum ...
- 工具 | Sublime
Sublime 前言 妈耶..\(Sublime\)的界面真的是太好看啦哭哭.. 我永远喜欢Sublime! 强推Sublime... 正文 自从暑假用上的Ubontu 一开始用的是\(gedit\) ...
- virtualbox命令行启动虚拟机和关闭虚拟机
C:\Program Files\Oracle\VirtualBox\VBoxManage.exe startvm 虚拟机名字 --type headlessC:\Program Files\Orac ...
- PropertyGrid中的枚举显示为中文
参考http://www.cnblogs.com/yank/archive/2011/09/17/2179598.html 在上述文档的基础上做了改进.从EnumConverter类派生 显示效果: ...
- python所遇到的坑
我是在ubuntu中,自带的有python2,python3有安装了anaconda套件,所以python的版本很多,曾经想删除过不用的python. 先执行 sudo apt remove pyth ...
- 一次ajax调用,发送了两次请求(一次为请求方法为option,一次为正常请求)
在项目了开发时遇见一个奇怪的现象,就是我在js里面发送一次ajax请求,在浏览器network那边查询到的却是发送了两次请求,第一次的Request Method参数为OPTIONS,第二次的Requ ...
- 20172321 2017-2018-2《Java程序设计》第三周学习总结
20172321 2017-2018-2<Java程序设计>第三周学习总结 教材学习内容总结 第三章要点: 要点1 :String类.Random类.Math类和枚举型,这几个是很有用的并 ...