前缀和,蓝桥 国赛2023 抓娃娃

一、题目

1、题目描述

2、输入输出

2.1输入
2.2输出

3、原题链接

0抓娃娃 - 蓝桥云课 (lanqiao.cn)


二、解题报告

1、思路分析

考虑每个线段如果被框住一半,那么其中点一定在区间内

所以我们前缀和前缀区间中点的数目

但是如果直接求中点(l + r) / 2会有精度问题,我们将1, n 映射到 n + 1, n就能避免精度问题

那么每次查询L, R内的中点数目就等价于查询L \* 2 - 1, R \* 2内的中点数目

2、复杂度

时间复杂度: O(n)空间复杂度:O(n)

3、代码详解

复制代码
cpp 复制代码
#include <bits/stdc++.h>
using i64 = long long;
const int N = 2e6 + 10;

void solve() {
    int n, m;
    std::cin >> n >> m;
    std::vector<int> pre(N);
    for (int i = 0, l, r; i < n; i ++ )
        std::cin >> l >> r, ++ pre[l + r];
    for (int i = 1, ed = pre.size(); i < ed; i ++ )
        pre[i] += pre[i - 1];
    for (int i = 0, l, r; i < m; i ++ ) {
        std::cin >> l >> r;
        std::cout << pre[r << 1] - pre[(l << 1) - 1] << '\n';
    }
}

int main () {
    std::ios::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0);
    int _ = 1;
    // std::cin >> _;
    while (_ --)
        solve();
    return 0;
}
相关推荐
2601_954526751 小时前
【工业传感与算法实战】温漂补偿与零点抗漂破局:基于二阶多项式拟合的 C/C++ 边缘校准算法,深度拆解“压力变送器什么牌子好”的技术硬指标
c语言·c++·算法
叩码以求索2 小时前
浅谈:算法萌新如何高效刷题应对面试(一)
算法·面试·职场和发展
c238563 小时前
把 C++ 内存分配拆透:new 与 malloc 的三层血缘
开发语言·c++·算法
aaaameliaaa4 小时前
指针之总结
c语言·笔记·算法
宵时待雨5 小时前
优选算法专题9:哈希表
数据结构·算法·散列表
txzrxz5 小时前
最短路问题——Dijkstra 算法
数据结构·c++·算法·最短路·优先队列
gwf2165 小时前
磨损均衡算法(Wear Leveling)——SSD如何让每块闪存“公平退休“?
运维·数据库·人工智能·python·嵌入式硬件·算法·智能硬件
noipp5 小时前
推荐题目:洛谷 P6231 [JSOI2013] 公交系统
c语言·数据结构·c++·算法·游戏·洛谷·luogu
c238565 小时前
C/C++每日一练6
c语言·c++·算法
AI小码6 小时前
把动作「画」给视频世界模型,跨本体双向推演,李飞飞参与
大数据·人工智能·算法·ai·大模型·音视频·编程