1 条题解

  • 0
    @ 2025-10-12 21:22:18

    平方差表示问题

    考虑哪些数字可以作为两个不同正整数的平方差:

    • 1 不能被表示;
    • 形如 2k+12k+1k>0k>0)的奇数可以表示为 (k+1)2k2(k+1)^2 - k^2
    • 形如 4k+24k+2k0k \geq 0)的偶数都不能被表示;
    • 4 不能被表示;
    • 形如 4k4kk2k \geq 2)的偶数可以表示为 (k+1)2(k1)2(k+1)^2 - (k-1)^2

    综上所述,记 d=a2b2d = |a^2 - b^2|,其表示方法数为:

    $$\left\lfloor \frac{d-1}{2} \right\rfloor + \max\left( \left\lfloor \frac{d}{4} \right\rfloor - 1,\ 0 \right) $$
    • @ 2025-10-12 21:22:28
      #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
1130
时间
1000ms
内存
256MiB
难度
10
标签
(无)
递交数
4
已通过
2
上传者