2022-01-21 01:00:18 +05:30
|
|
|
---
|
|
|
|
id: 5900f5001000cf542c510013
|
2022-01-22 20:38:20 +05:30
|
|
|
title: '問題 403: 放物線と線で囲まれた格子点'
|
2022-01-21 01:00:18 +05:30
|
|
|
challengeType: 5
|
|
|
|
forumTopicId: 302071
|
|
|
|
dashedName: problem-403-lattice-points-enclosed-by-parabola-and-line
|
|
|
|
---
|
|
|
|
|
|
|
|
# --description--
|
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
整数 $a$ と $b$ に対し、放物線 $y = x^2$ と線 $y = ax + b で囲まれた領域として $D(a, b)$ を定義します。すなわち、D(a, b) = \\{ (x, y) | x^2 ≤ y ≤ ax + b \\}$ です。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
$D(a, b)$ に含まれる格子点の数を $L(a, b)$ と定義します。 例えば、$L(1, 2) = 8$, $L(2, -1) = 1$ です。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
また、$D(a, b)$ の面積が有理数であり、かつ $|a|,|b| ≤ N$ であるようなすべての対 ($a$, $b$) に対して、$L(a, b)$ の和を $S(N)$ と定義します。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
$S(5) = 344$, $S(100) = 26\\,709\\,528$ であることを確認できます。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
$S({10}^{12})$ を求めなさい。 $\bmod {10}^8$ で答えること。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
|
|
|
# --hints--
|
|
|
|
|
2022-01-22 20:38:20 +05:30
|
|
|
`latticePoints()` は `18224771` を返す必要があります。
|
2022-01-21 01:00:18 +05:30
|
|
|
|
|
|
|
```js
|
|
|
|
assert.strictEqual(latticePoints(), 18224771);
|
|
|
|
```
|
|
|
|
|
|
|
|
# --seed--
|
|
|
|
|
|
|
|
## --seed-contents--
|
|
|
|
|
|
|
|
```js
|
|
|
|
function latticePoints() {
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
latticePoints();
|
|
|
|
```
|
|
|
|
|
|
|
|
# --solutions--
|
|
|
|
|
|
|
|
```js
|
|
|
|
// solution required
|
|
|
|
```
|