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

蓝桥杯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;
}
http://www.lryc.cn/news/2378284.html

相关文章:

  • Harmony开发 List、Grid拖动自定义排序实现
  • 迅龙3号基于兆讯MH22D3适配CST328多点触摸驱动开发笔记
  • 【001】.so文件分析之 ELF格式符号
  • QT之LayOut布局
  • 无需配置光猫,使用网管交换机配合路由器的IPTV功能实现单线复用
  • C++类与对象--1 特性一:封装
  • Linux:计算机的层状结构
  • 【SpringBoot】关于MP使用中配置了数据库表前缀的问题
  • AI 赋能防艾宣传:从创意到实践,我的 IP 形象设计之旅
  • Redis 事务与管道:原理、区别与应用实践
  • 每日算法刷题Day9 5.17:leetcode定长滑动窗口3道题,用时1h
  • 手机打电话时如何将通话对方的声音在手机上识别成文字
  • 重排序模型解读:gte-multilingual-reranker-base 首个GTE系列重排模型诞生
  • C++学习:六个月从基础到就业——C++11/14:列表初始化
  • SQL语句执行问题
  • 2025系统架构师---选择题知识点(押题)
  • flutter flutter run 运行项目卡在Running Gradle task ‘assembleDebug‘...
  • P5682 [CSP-J2019 江西] 次大值
  • Elasticsearch 性能优化面试宝典
  • 【论文阅读】人脸修复(face restoration ) 不同先验代表算法整理2
  • 无监督学习在医疗AI领域的前沿:多模态整合、疾病亚型发现与异常检测
  • 计算机操作系统概要
  • C语言进阶-数组和函数
  • 图片通过滑块小图切换大图放大镜效果显示(Vue3)
  • [SSL]1Panel添加阿里云DNS账户
  • C语言编程中的时间处理
  • 计算机网络 : 网络基础
  • C++跨平台开发:突破不同平台的技术密码
  • 实现 STM32 PWM 输出:原理、配置与应用详解
  • Web 架构之负载均衡会话保持