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

蓝桥杯12届国B 123

题目描述

小蓝发现了一个有趣的数列,这个数列的前几项如下:

1,1,2,1,2,3,1,2,3,4,⋯

小蓝发现,这个数列前 1 项是整数 1,接下来 2 项是整数 1 至 2,接下来 3 项是整数 1 至 3,接下来 4 项是整数 1 至 4,依次类推。

小蓝想知道,这个数列中,连续一段的和是多少。

输入描述

输入的第一行包含一个整数 T,表示询问的个数。

接下来 T 行,每行包含一组询问,其中第 i 行包含两个整数 li​ 和 ri​,表示询问数列中第 li​ 个数到第 ri 个数的和。

输出描述

输出 T 行,每行包含一个整数表示对应询问的答案。

输入输出样例

示例

输入

3
1 1
1 3
5 8

输出

1
4
8

评测用例规模与约定

 前缀和这个方法弯弯绕绕有点多:

#include<iostream>
#include<algorithm>  //for lower_bound
using namespace std;typedef long long ll;const int N = 2e6+10;
ll a[N];  //a[i]:前i组所有元素的个数(第i组元素的和) 
ll b[N];  //b[i]:前i组所有元素的和 int t;//计算数列中前x项的和
ll f(ll x)
{if(x==0) return 0;//pos:数列中第x项是第pos组 //-a:得到下标i int pos=lower_bound(a+1, a+1+N, x)-a;//前pos-1组的和 + 第pos组的前(x-a[pos-1])项的和//第pos组的前(x-a[pos-1])项的和 = 第i组元素的和return b[pos-1]+a[x-a[pos-1]]; 
}int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);for(ll i=1; i<N; ++i){a[i] = a[i-1]+i;b[i] = b[i-1]+a[i];  //第i组元素的和恰好等于前i组的元素个数 }cin>>t; while(t--){ll l, r;cin>>l>>r;cout<<f(r)-f(l-1)<<'\n';}return 0;
}

相关文章:

  • 数据结构——例题2
  • [数据结构]8. 树-Tree
  • 基于YOLO算法的目标检测系统实现指南
  • Reactor模型详解与C++实现
  • 虚拟Python 环境构建器virtualenv安装(macOS版)
  • 小白上手RPM包制作
  • Obsidian Callouts标注框语法
  • 【python】字典:: a list of dictionaries
  • 在Rocky Linux 9.5上部署MongoDB 8.0.9:从安装到认证的完整指南
  • 项目变更管理
  • 【Android】Android 实现一个依赖注入的注解
  • 互联网医院系统源码解析:药店APP开发的技术架构与实现难点
  • 开源GPU架构RISC-V VCIX的深度学习潜力测试:从RTL仿真到MNIST实战
  • PromptIDE提示词开发工具支持定向优化啦
  • Elasticsearch性能调优全攻略:从日志分析到集群优化
  • 数据结构中链表的含义与link
  • Blender 入门教程(三):骨骼绑定
  • undefined reference to CPUAllocatorSingleton::instance
  • 访问 Docker 官方镜像源(包括代理)全部被“重置连接”或超时
  • 动态住宅IP代理的技术解析:优缺点与场景化应用
  • 新版城市规划体检评估解读:把城市安全韧性摆在更加突出位置
  • 北京警方:海淀发生小客车刮碰行人事故4人受伤,肇事司机已被查获
  • 巴菲特谈卸任CEO:开始偶尔失去平衡,但仍然保持敏锐的头脑,仍打算继续工作
  • 青海省交通运输厅副厅长田明有接受审查调查
  • 牛市早报|4月新增社融1.16万亿,降准今日正式落地
  • 浙能集团原董事长童亚辉被查,还是杭州市书法家协会主席