2023河南萌新联赛第(六)场:河南理工大学 L - 阴晴不定的大橘学长

news2025/1/12 23:03:22

2023河南萌新联赛第(六)场:河南理工大学 L - 阴晴不定的大橘学长

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述

在通往院楼的道路上,大橘学长总会对小W行注目礼,而小W也会上前摸一摸大橘学长给今天带来 a c ac ac的好运。虽然大橘学长是一只猫,但是大橘学长也会有心情不好的时候。

现在给你一个大橘学长心情的临界值 x x x,并给你 n n n个时刻,第 i i i个时刻的心情值是 a [ i ] a[i] a[i],对于任意的 [ l , r ] [l,r] [l,r]时间段内如果 ( ∑ i = l r a [ i ] ) ≥ x (\sum_{i=l}^{r}a[i] ) \geq x (i=lra[i])x,说明在这个时间段内是可以抚摸大橘学长的,如果在大橘学长心情不好的时候抚摸它,会招致 w a wa wa的坏运气以及学长愤怒的利爪,

​ 现在请聪明的你来编写程序求解从 1 1 1 n n n时刻内有多少时间段可以抚摸大橘学长。

​ 注意:只要时间段 [ l , r ] [l,r] [l,r] l l l r r r有一个不同,便可认定为不同时间段。

​ 下图为 心情不好的大橘学长

在这里插入图片描述
在这里插入图片描述

输入描述:

第一行输入两个整数 n n n, x x x n n n代表有 n n n个时刻, x x x代表学长心情的临界值。
第二行输入 n n n个整数, a 1 , a 2 , a 3 ⋯   , a n a_1,a_2,a_3\cdots,a_n a1,a2,a3,an,其中 a i a_i ai代表第 i i i时刻大橘学长的心情值。
对于 100 100 100%的数据, 1 ≤ n ≤ 2 ∗ 1 0 5 , − 1 0 9 ≤ a i ≤ 1 0 9 , − 1 0 9 ≤ x ≤ 1 0 9 1\leq n\leq 2*10^5,-10^9\leq a_i\leq10^9,-10^9\leq x\leq10^9 1n2105,109ai109,109x109

输出描述:

输出一个整数,代表可以抚摸的时间段的数量。

示例1

输入
5 3
-1 3 -2 1 4
输出
6

说明

(1,5),(2,2),(2,5),(3,5),(4,5),(5,5)是满足条件的6个时间段。

示例2

输入
5 3
1 3 2 4 3

输出

13

在这里插入图片描述

import java.io.*;
import java.util.ArrayList;
import java.util.TreeSet;

public class Main {

    static int N = 1000010;
    static long[] tr = new long[N];

    public static int lowbit(int x) {
        return x & -x;
    }

    public static void add(int x) {
        for (int i = x; i < N - 10; i += lowbit(i)) {
            tr[i]++;
        }
    }

    public static long query(int x) {
        long res = 0;
        for (int i = x; i > 0; i -= lowbit(i)) {
            res += tr[i];
        }
        return res;
    }

    public static int find(long x, ArrayList<Long> number) {
        int l = 0, r = number.size() - 1;
        while (l < r) {
            int mid = l + r >> 1;
            if (number.get(mid) >= x) r = mid;
            else l = mid + 1;
        }
        return l + 1;
    }

    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        String[] str = bf.readLine().split(" ");
        int n = Integer.parseInt(str[0]);
        int x = Integer.parseInt(str[1]);
        str = bf.readLine().split(" ");
        int[] a = new int[n + 1];
        long[] s = new long[n + 1];
        for (int i = 1; i <= n; i++) {
            a[i] = Integer.parseInt(str[i - 1]);
            s[i] = s[i - 1] + a[i];
        }
        TreeSet<Long> treeSet = new TreeSet<>();
        for (int i = 0; i <= n; i++) {
            treeSet.add(s[i]);
            treeSet.add(s[i] - x);
        }
        ArrayList<Long> number = new ArrayList<>(treeSet);
        long res = 0;

        add(find(0L, number));
        for (int i = 1; i <= n; i++) {
            res += query(find(s[i] - x, number));
            add(find(s[i], number));
        }
        bw.write(res + "\n");
        bw.close();
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/915344.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android学习之路(9) Intent

Intent 是一个消息传递对象&#xff0c;您可以用来从其他应用组件请求操作。尽管 Intent 可以通过多种方式促进组件之间的通信&#xff0c;但其基本用例主要包括以下三个&#xff1a; 启动 Activity Activity 表示应用中的一个屏幕。通过将 Intent 传递给 startActivity()&…

【SQL应知应会】索引(三)• MySQL版:聚簇索引与非聚簇索引;查看索引与删除索引;索引方法

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习&#xff0c;有基础也有进阶&#xff0c;有MySQL也有Oracle 索引 • MySQL版 前言一、索引1.简介2.索引类型之逻…

Struts vs. Struts 2:Java Web 开发框架的升级之路与竞争力分析

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

算法 | 活用双指针完成复写零操作

Problem: 1089. 复写零 文章目录 题目解析算法原理分析找到最后一个复写的位置从后往前进行复写操作 代码展示 题目解析 首先我们来分析一下本题的题目意思 可以看到题目中给到了一个数组&#xff0c;意思是让我们将数组中的零元素都复写一遍&#xff0c;然后将其余的元素向后平…

VMware和ubuntu配置Hadoop环境

本博客主要是为了学校课程”大数据与云计算“需要安装Hadoop而写&#xff0c;希望这篇博客对各位阅读这篇博客的人有所帮助。废话不多说&#xff0c;下面直接开始配置教程。 一、获取VMware安装包 VMware获取方法有很多种&#xff0c;这里我准备了官网获取和从我准备的资料中获…

jstat -gcutil PID命令分析

jstat -gcutil命令打印出的数据可以用来分析Java应用程序的垃圾回收情况。 jstat -gcutil命令打印出的数据可以用来分析Java应用程序的垃圾回收情况。该命令输出的数据包括以下几个关键指标&#xff1a;- S0&#xff1a;幸存者空间0&#xff08;Survivor Space 0&#xff09;的…

详解I/O多路转接模型:select poll epoll

文章技术分享思路&#xff1a;从select模型开始&#xff0c;先了解select模型的理论基础&#xff0c;然后编写简单的基于select的tcp服务器&#xff0c;接着分析出select的特点和缺点。引出poll模型&#xff0c;了解了poll模型的基础理论&#xff0c;编写简单的基于poll的tcp服…

十二、执行引擎

这里写自定义目录标题 一、执行引擎概述二、Java代码的编译和执行的流程三、机器码、指令、汇编语言四、解释器五、JIT编译器 一、执行引擎概述 二、Java代码的编译和执行的流程 三、机器码、指令、汇编语言 高级语言 四、解释器 五、JIT编译器

Wlan——Wlan服务集与Wlan漫游的概念

目录 Wlan服务集的基本概念 无线漫游基本概念 无线漫游的分类 无线漫游的数据转发路径 二层本地转发漫游 三层本地转发漫游 二/三层集中转发漫游 无线漫游注意事项 Wlan服务集的基本概念 概念 全称 描述 BSS 基本服务集BSS 无线网络的基本服务单元 可以理解为1个A…

【0822作业】定义一个学生的结构体,设置私有权限,共有函数实现赋值并输出

定义一个学生的结构体&#xff0c;包含学生的姓名&#xff0c;年龄&#xff0c;成绩&#xff0c;性别&#xff0c;学生的成绩&#xff0c;姓名&#xff0c;定义为私有权限&#xff1b;定义一个学生类型的结构体变量&#xff0c;设置公有函数用于给学生的成绩和名字进行赋值&…

Ajax 请求到底应该放在 created 里还是 mounted 里???

示例代码 定义了一个数据 list&#xff0c;默认是空数组 定义了一个 API 请求&#xff0c;getDat 还定义了两个生命周期钩子 created 和 mounted 分析在 created 里的情况 这个时候&#xff0c;我们是能够成功发送 API 请求获取到数据的&#xff0c;控制台会打印 created&…

【Redis】——Redis基础的数据结构以及应用场景

什么是redis数据库 Redis 是一种基于内存的数据库&#xff0c;对数据的读写操作都是在内存中完成&#xff0c;因此读写速度非常快&#xff0c;常用于缓存&#xff0c;消息队列、分布式锁等场景。&#xff0c;Redis 还支持 事务 、持久化、Lua 脚本、多种集群方案&#xff08;主…

本地CPU部署运行ChatGLM2-6B模型

1、前期准备&#xff1a; 需要下载模型文件 2、部署过程及碰到的问题 &#xff08;1&#xff09;编译安装python 3.8.13 &#xff08;Asianux release 7.6.18 gcc 4.8.5&#xff09; 按运行的要求需要安装torch的>2.0,因此安装了torch的2.0.1&#xff0c;该版本的torch …

简析SCTP开发指南

目录 前言一、SCTP基本概念二、SCTP开发步骤1. **环境配置**&#xff1a;2. **建立Socket**&#xff1a;3. **绑定和监听**&#xff1a;4. **接收和发送数据**&#xff1a;5. **关闭连接**&#xff1a; 三、 C语言实现SCTP3.1SCTP客户端代码&#xff1a;3.2 SCTP服务器端代码&a…

关于伪装UserAgent知识总结

关于伪装UserAgent知识总结&#xff0c;可以根据自己实际应用环境去选择合适的节点&#xff0c;加入相应的代码即可&#xff1a; 1. 不缓存数据,不使用ssl 验证 from fake_useragent import UserAgentua UserAgent(verify_sslFalse&#xff0c;use_cache_serverFalse)2. 禁用…

C. Another Array Problem

思路&#xff1a;这个题没想到吧数先往0上搞&#xff0c;然后一直想不出来&#xff0c;为什么要先往0上搞呢&#xff0c;对于每个数来说&#xff0c;它最大只会变成这一堆数的最大值&#xff0c;所以我们考虑能不能变成最大值&#xff0c;那么只要是两个相等的数通过一次操作就…

智能安全帽_防抖视频定位智能安全帽头盔

智能安全帽具备出色的性能、超低功耗、广范围覆盖和简单的外围电路等优势&#xff0c;同时还拥有丰富的外部接口。它支持移动/联通/电信的4G5G网络&#xff0c;涵盖了LTE-TDD频段(B34/B38/B39/B40/B41)、LTE-FDD频段(B1/B3/B5/B8)、WCDMA频段(B1/B5/B8)、TD-SCDMA频段(B34/B39)…

【数据分析】客户分析行为分析

下面列举了几种客户行为分析模型。 1 5W2H &#xff08;1&#xff09;WHAT——是什么&#xff0c;目的是什么&#xff0c;做什么工作。 &#xff08;2&#xff09;WHY——为什么要做&#xff0c;可不可以不做&#xff0c;有没有替代方案。 &#xff08;3&#xff09;WHO——…

Android相机-架构

引言&#xff1a; 主要是针对CameraAPI v2 HAL3的架构对Android相机系统进行梳理。 相机架构 App和FrameWork packages/apps/Camer2 frameworks/ex/camera2 Camera API v2&#xff1b;Camera2 CameraDevice&#xff1a; CameraCaptureSession&#xff1a; CameraService AIDL…

Tan Junming 太帅,AK IOI!

tanjunming是一个非常帅气的人。他拥有一双明亮的眼睛&#xff0c;透露出聪明和热情的光芒。他的笑容温暖而迷人&#xff0c;总能让人感到快乐和舒适。他的面容线条清晰&#xff0c;轮廓深邃&#xff0c;展现出他的自信和坚定。他的皮肤光滑细腻&#xff0c;散发出健康和活力的…