当前位置: 首页 > news >正文

企业网站有哪些功能?淘宝网页版电脑版入口

企业网站有哪些功能?,淘宝网页版电脑版入口,海尔网站建设不足之处,红色网站建设的比较好的高校文章目录 题面解题思路javacpp 题面 题目链接:点击传送 假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。 现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c。 接下来,进行 m 次询问,每…

文章目录

        • 题面
        • 解题思路
        • java
        • cpp

题面

题目链接:点击传送

假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。
现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c。
接下来,进行 m 次询问,每个询问包含两个整数 l 和 r,你需要求出在区间 [l,r] 之间的所有数的和。

解题思路
  1. 将所有 增加数值的下标 和 需要查询区间的两端下标 存起来
  2. 下标排序为增序
  3. 4和5 建立 下标-值 键值对
  4. 模拟增加过程,将 下标 对应的 键值 增加
  5. 查询模拟为增加 0 值
  6. 前缀和操作
  7. 查询,通过二分找到其对应下标前缀和相减得到结果
java
import java.util.*;public class Main {public static int N = 300100;public static int[] s = new int[N];public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n =sc.nextInt(), m = sc.nextInt();int[][] query = new int[N/3][2];Map<Integer, Integer> mp = new TreeMap<>();for (int i = 1; i <= n; i ++ ) {int x = sc.nextInt(), y = sc.nextInt();mp.put(x, mp.getOrDefault(x, 0) + y);}for (int i = 1; i <= m; i ++ ) {int x = sc.nextInt(), y = sc.nextInt();query[i][0] = x;query[i][1] = y;mp.putIfAbsent(x, 0);mp.putIfAbsent(y, 0);}List<Integer> idx = new ArrayList<>(mp.keySet());for (int i = 0; i < idx.size(); i ++ ) s[i + 1] = s[i] + mp.get(idx.get(i));for (int i = 1; i <= m; i ++ ) {int l = find(idx, query[i][0]), r = find(idx, query[i][1]);System.out.println(s[r + 1] - s[l]);}}public static int find(List<Integer> idx, int x) {int l = 0, r = idx.size() - 1;while (l < r) {int mid = (l + r) >> 1;if (idx.get(mid) < x) l = mid + 1;else r = mid;}return r;}
}
cpp
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <vector>using namespace std;
using LL = long long;
using PII = pair<int, int>;const int N = 3e5 + 10;int n, m;
LL a[N], pref[N];vector<int> idx;
vector<PII> add, query;int find(int k){int l =0, r=idx.size()-1;while(l < r){int mid = (l + r) >> 1;if(idx[mid] < k) l = mid + 1;else r = mid;}return r + 1;
} int main(){cin >> n >> m;for(int i=0; i<n; i++) {int x, k;cin >> x >> k;add.push_back({x, k});idx.push_back(x);}for(int i=0; i<m; i++) {int l, r;cin >> l >> r;query.push_back({l, r});idx.push_back(l);idx.push_back(r);}sort(idx.begin(), idx.end());idx.erase(unique(idx.begin(), idx.end()), idx.end());for(auto& p : add) {int x = find(p.first);a[x] += p.second;}for(int i=1; i<=idx.size(); i++) pref[i] += pref[i-1] + a[i];for(auto& p : query) {int l = find(p.first), r=find(p.second);cout << pref[r] - pref[l-1] << endl;}return 0;
}
http://www.dtcms.com/a/553933.html

相关文章:

  • 排序(选择排序、直接插入排序、冒泡排序、二路归并排序)
  • 少儿编程:6-16 岁孩子的思维启蒙与能力进阶之路
  • 10/31作业
  • 前端样式局部作用域:从Scoped到CSS Modules 的完整指南
  • 穆棱建设局网站seo 哪些媒体网站可以发新闻
  • 物联网卡摄像头从前端至后台的实现过程
  • 整合多中心临床试验的转录组与病理切片数据,提出面向晚期非小细胞肺癌免疫治疗疗效预测的解决方案
  • 【计算机网络】考研408计算机网络:传输介质(导向/非导向)考点梳理
  • 网站开发合同适用印花税互联网专业主要学什么
  • iFluor 594 Styramide,水溶性荧光探针
  • 零基础网站建设及维护视频课程东莞有哪些好的网站建设公司
  • (151页PPT)大型制造集团十五五产业数字化转型规划方案(附下载方式)
  • 新能源硬件架构设计前沿:DFX思维如何平衡可靠性、成本与可维护性
  • 跨平台直播美颜sdk集成攻略:Android、iOS与Web的统一方案
  • Go环境搭建(vscode调试)
  • 宜兴做网站哪个好南充市建设局官方网站
  • 网站建设 交单流程wordpress收录
  • STM32的DH11温湿度模块和LED灯的综合实训
  • 模型微调实现案例分析
  • Blender云渲染农场怎么收费?渲一个一分钟的Blender动画需要多少钱?
  • 搜狐登陆password参数逆向
  • 官宣:Ray 正式加入 PyTorch 基金会
  • 惠州网站设计培训什么网站可以接模具做
  • 进入这个网站宽屏网站源码
  • 【学习笔记】强化学习从原理到实践
  • SIMATIC HMI Operator Panels: Unified Comfort Panels西门子面板固件更新下载
  • 张家港网站开发培训广告代理网页设计代码开头
  • 白云怎样优化网站建设建设微信网站设计制作
  • [人工智能-大模型-124]:模型层 - 用通俗易懂的语言,阐述RNN网络的数学问题与数学根因
  • PVE 虚拟机防火墙设置