P10416 题解
题目分析
本题将有
思路
由于数据范围为
因为
-
当
Z=2L 时,X=L,Y=L ,共一组。 -
当
Z=2L+1 时,X=L,Y=L+1 或X=L+1,Y=L ,共两组。 -
当
Z=2L+2 时,X=L,Y=L+2 或X=L+1,Y=L+1 或X=L+2,Y=L ,共三组。 -
当
Z=2L+3 时,X=L,Y=L+3 或X=L+1,Y=L+2 或X=L+2,Y=L+1 或X=L+3,Y=L ,共四组。 -
\cdots -
当
Z=2L+n=R 时,可推导出共有n+1 种满足条件的X,Y,Z 组合。变形可得n=R-2L 。所以此时满足条件的X,Y,Z 有R-2L+1 种。
答案已经很明显了,为一个公差为
因为公差为
所以,该等差数列之和为
需要注意的是,因为
C++ 代码实现
#include<bits/stdc++.h> // 包含所有标准 C++ 库
using namespace std;
int main()
{
long long ans,t;
cin >> t; // 输入测试用例的数量
while(t--)
{
long long l,r,n,m;
cin >> l >> r; // 输入 l 和 r 的值
if(r<2*l)
{
cout << 0 << endl; // 输出 0 并换行
continue; // 跳过循环的其余部分
}
// 计算项数以及首项与末项的和
n=r-2*l+1;
m=r-2*l+2;
ans=n*m/2;
// 输出答案
cout << ans << endl; // 输出 ans 的值并换行
}
return 0; // 表示程序成功完成
}