1 条题解
-
0
平方差表示问题
考虑哪些数字可以作为两个不同正整数的平方差:
- 1 不能被表示;
- 形如 ()的奇数可以表示为 ;
- 形如 ()的偶数都不能被表示;
- 4 不能被表示;
- 形如 ()的偶数可以表示为 。
综上所述,记 ,其表示方法数为:
$$\left\lfloor \frac{d-1}{2} \right\rfloor + \max\left( \left\lfloor \frac{d}{4} \right\rfloor - 1,\ 0 \right) $$#include<iostream> using namespace std; int main() { int t; scanf("%d", &t); for(int i = 1; i <= t; i++) { long long a, b; scanf("%lld%lld", &a, &b); long long d = abs(a * a - b * b); printf("%lld\n", (d - 1) / 2 + max(d / 4 - 1, (long long)0)); } return 0; }
- 1
信息
- ID
- 490
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 68
- 已通过
- 8
- 上传者