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

蓝桥杯 XYZ

问题描述

给定一个区间 [L, R],请求出有多少组 (X, Y, Z) 满足:

X + Y = Z

且满足:

L ≤ X, Y, Z ≤ R

输入格式

本题包含多组询问。

  • 第一行包含一个整数 T,表示询问组数。
  • 接下来的 T 行,每行包含两个整数 Lᵢ, Rᵢ,用空格分隔,表示一组询问。

输出格式

输出 T 行,每行包含一个整数,表示满足条件的三元组 (X, Y, Z) 的组数。


样例输入

2
1 3
1 4

样例输出

3
6

样例说明

对于区间 [1, 3],满足条件的三元组有:

  • (1, 1, 2)
  • (1, 2, 3)
  • (2, 1, 3)

共 3 组。

对于区间 [1, 4],满足条件的三元组有:

  • (1, 1, 2)
  • (1, 2, 3)
  • (2, 1, 3)
  • (1, 3, 4)
  • (2, 2, 4)
  • (3, 1, 4)

共 6 组。


评测用例规模与约定

  • 对于 30% 的评测用例:T ≤ 1000Lᵢ, Rᵢ ≤ 100
  • 对于 100% 的评测用例:
    • 1 ≤ T ≤ 100000
    • 1 ≤ Lᵢ ≤ Rᵢ ≤ 10⁹

c++代码

#include<bits/stdc++.h>
#include<stdio.h>

using namespace std;

typedef __int128_t ll;

int T, a, b;

ll getans(ll l, ll r) {
    if (2 * l > r) return 0;
    ll k = (ll)((r + 1) / 2);
    ll n = k - l + 1;
    ll mid = (r + 1) * n - 2 * l * n - n * (n - 1);
    mid *= 2;
    ll w = (ll)(r / 2);
    mid -= (w - l + 1);
    return mid;
}

int main() {
    cin >> T;
    while(T--) {
        cin >> a >> b;
        cout << (long long)getans(a, b) << endl;
    }
    return 0;
}//by wqs

思路解析

总的来说,这是一个数学找规律的题目,举几个例子,推导出数学规律就行

相关文章:

  • elementui中el-form自定义表单校验规则
  • Java后端开发(十八)-- 使用JAXB,将JavaBean转换XML文本
  • 基础知识专题整理-----持续更新
  • lib-zo,C语言另一个协程库,整理
  • leetcode0704. 二分查找-easy
  • 关于labview中路径的问题
  • 一款功能强大的手机使用情况监控工具
  • 探访 DINO 家族 Part 4:融合多模态大语言模型的视觉模型基础 RexSeek
  • 【计算机网络】记录一次校园网无法上网的解决方法
  • Android 地区选择器或者其他选择器
  • 【蓝桥杯14天冲刺课题单】Day 1
  • 指针函数、函数指针和指针函数指针的全面总结
  • MySQL表缺乏主键或唯一索引对主从复制的深度影响及解决方案
  • linux课程学习三——静态/动态库的创建
  • 使用无人机进行露天矿运输道路分析
  • js中三元表达式(条件运算符)的用法总结
  • VCP考试通过率低?
  • vs2022中使用spdlog、C++日志
  • 时序数据库 InfluxDB(五)
  • 文件分享系统--开源的可视化文件共享管理工具
  • 天津网站设计 河西/百度统计app下载
  • 在线网站/搜索引擎优化的概念是什么
  • 郑州一建集团有限公司官网/seo关键词的选择步骤
  • 穹拓做网站/软件推广的渠道是哪里找的
  • 中山网站建设技术/百度网址提交入口
  • 济南知名网站建设平台/网站怎么制作