LA2678最短子序列
题意:
给你一个正整数序列,问你在里面找到一个最短的子序列,要求子序列的和大于等于k,输出序列长度。
思路:
这个序列的每个数字都是正整数,那么就比较好想了,我们可以直接枚举终点,然后每次当当前和大于等于k的时候就把前面的markid(markid初始为1)点缩进,得到前端(我的是得到前端的下一个,这个无所谓,就是一个加不加1的事),然后更新最小值就行了,这样的时间复杂度是O(n)的,还有一个O(n*logn)的方法,就是白书上说的那个,我们可以枚举终点,然后二分去找起点,因为所有数字都是正整数,所以是单调的,找到最靠后的起点作为当前终点的起点,然后更新最小值就行了。
#include<stdio.h>
#define N 100000 + 10
int num[N];
int main ()
{
int n ,m ,i ,Ans;
while(~scanf("%d %d" ,&n ,&m))
{
for(i = 1 ;i <= n ;i ++)
scanf("%d",&num[i]);
int nows = 0 ,nowid;
for(Ans = 0 ,nowid = 1 ,i = 1 ;i <= n ;i ++)
{
nows += num[i];
if(nows >= m)
{
while(nows - num[nowid] >= m)
{
nows -= num[nowid];
nowid ++;
}
if(!Ans || Ans > i - nowid + 1)
Ans = i - nowid + 1;
}
}
printf("%d\n" ,Ans);
}
return 0;
}
LA2678最短子序列的更多相关文章
- UVALive 2678 大于s的最短子序列和
input n s 10<=n<=100000,s<1e9 a1 a2 ... an ai<=10000 output 大于s的最短子序列和的长度,没有输出0 #includ ...
- POJ - 3061 Subsequence(连续子序列和>=s的最短子序列长度)
Description A sequence of N positive integers (10 < N < 100 000), each of them less than or eq ...
- LeetCode Minimum Size Subarray Sum (最短子序列和)
题意:给一个序列,找出其中一个连续子序列,其和大于s但是所含元素最少.返回其长度.0代表整个序列之和均小于s. 思路:O(n)的方法容易想.就是扫一遍,当子序列和大于s时就一直删减子序列前面的一个元素 ...
- nyoj133_子序列_离散化_尺取法
子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:5 描述 给定一个序列,请你求出该序列的一个连续的子序列,使原串中出现的所有元素皆在该子序列中出现过至少1次. 如2 8 ...
- BZOJ.4032.[HEOI2015]最短不公共子串(DP 后缀自动机)
题目链接 1.求A的最短子串,它不是B的子串. 子串是连续的,对B建SAM,枚举起点,在SAM上找到第一个无法匹配点即可.O(n)用SAM能做吗..开始想错了. 2.求A的最短子串,它不是B的子序列. ...
- 【BZOJ】4032: [HEOI2015]最短不公共子串(LibreOJ #2123)
[题意]给两个小写字母串A,B,请你计算: (1) A的一个最短的子串,它不是B的子串 (2) A的一个最短的子串,它不是B的子序列 (3) A的一个最短的子序列,它不是B的子串 (4) A的一个最短 ...
- NYOJ 133 子序列 (离散化)
题目链接 描述 给定一个序列,请你求出该序列的一个连续的子序列,使原串中出现的所有元素皆在该子序列中出现过至少1次. 如2 8 8 8 1 1,所求子串就是2 8 8 8 1. 输入 第一行输入一个整 ...
- bzoj 4032 [ HEOI 2015 ] 最短不公共子串 —— 后缀自动机+序列自动机
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4032 序列自动机其实就是每个位置记录一下某字母后面第一个出现位置,为了子序列能尽量长. 对字 ...
- 子序列 NYOJ (尺取法+队列+hash) (尺取法+离散化)
子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:5 描述 给定一个序列,请你求出该序列的一个连续的子序列,使原串中出现的所有元素皆在该子序列中出现过至少1次. 如2 8 ...
随机推荐
- [个人总结]pip安装tensorboard太慢
在执行pip install语句的时候直接指定国内豆瓣的镜像源进行下载: pip install -i https://pypi.douban.com/simple 你想下载的包的名称 例如下载ten ...
- pytorch(11)模型创建步骤与nn.Module
模型创建与nn.Module 网络模型创建步骤 nn.Module graph LR 模型 --> 模型创建 模型创建 --> 构建网络层 构建网络层 --> id[卷积层,池化层, ...
- Java变量-常量-作用域
public class Demo05 { /* 变量的命名规范:见名知意 1.类变量/实例变量/局部变量使用驼峰原则命名 2.类名使用Pascal命名法 3.常量名使用大写字母和下划线 4.驼峰原则 ...
- ZooKeeper 基本概念并介绍RPC中Netty和Zookeeper的使用
前言 ZooKeeper 是一个分布式协调服务,可用于服务发现,分布式锁,分布式领导选举,配置管理等.Zookeeper提供一个类似Linux文件系统的属性结构,每个节点可存储少量的内存文件,并提供每 ...
- P2766 最长不下降子序列问题 题解(网络流)
题目链接 最长不下降子序列问题 解题思路 分成三小问解决. 第一小问,求\(LIS\),因为\(n<=500\),直接\(O(N^2)\)暴力求解即可. 第二三小问,建立模型用网络流求解. 对于 ...
- Lzzy高级语言程序设计之while循环
public class Mq2 { public static void main(String[]args) { int b = 3; while (b < 7) { System.out. ...
- MySQL中where和on,where和having 的区别
where和on的区别 用到连接查询时on会常用到,我们以左连接为例,来了解on的作用. on是在生成临时表使用的条件,不管on子句的条件是否为真,其都会返回左表的数据,如果条件为真则右表对应的数据也 ...
- python-实现输出乘法口诀表
list1 = [1,2,3,4,5,6,7,8,9] 2 def number(num): 3 for i in list1[:num]: 4 result = 1 * i 5 print(&quo ...
- MUV LUV UNLIMITED Gym - 102361K
题目链接:https://vjudge.net/problem/Gym-102361K 题意:两个人轮流取树叶,最后没有树叶取的人输. 思路:求出所有树叶所在链的长度即可,如果都为偶数先手必败,否则先 ...
- Qt添加注释模板
背景 软件:Qt Creator 在写代码的时候我们为了规范化,一般会加文件注释.类注释和函数注释 用注释来说明我们的代码,也方便模块化开发 那么我们在写注释的时候经常会写一些重复的内容,我们会复制粘 ...