結果
| 問題 |
No.2187 三立法和 mod 333
|
| コンテスト | |
| ユーザー |
gew1fw
|
| 提出日時 | 2025-06-12 16:56:11 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,255 bytes |
| コンパイル時間 | 232 ms |
| コンパイル使用メモリ | 82,512 KB |
| 実行使用メモリ | 93,148 KB |
| 最終ジャッジ日時 | 2025-06-12 16:56:15 |
| 合計ジャッジ時間 | 2,832 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | TLE * 1 -- * 32 |
ソースコード
import sys
import bisect
from collections import defaultdict
def main():
A = int(sys.stdin.readline().strip())
max_z = 4444
mod = 333
# 预处理z的值,计算z³ mod333和z⁴
mod_z_dict = defaultdict(list)
for z in range(1, max_z + 1):
r = (z ** 3) % mod
z4 = z ** 4
mod_z_dict[r].append(z4)
# 预处理x和y的值,计算x³ mod333和x⁴
x_info = [((x ** 3) % mod, x ** 4) for x in range(1, max_z + 1)]
max_val = (4444 ** 4)
total = 0
for x in range(1, max_z + 1):
x_mod, x4 = x_info[x - 1]
for y in range(1, max_z + 1):
y_mod, y4 = x_info[y - 1]
s_mod = (x_mod + y_mod) % mod
target_r = (A - s_mod) % mod
s_xy = x4 + y4
if s_xy > max_val:
continue
max_z4 = max_val - s_xy
if max_z4 < 1:
continue
# 检查是否在字典中存在对应的余数
if target_r not in mod_z_dict:
continue
z_list = mod_z_dict[target_r]
# 使用bisect查找
count_z = bisect.bisect_right(z_list, max_z4)
total += count_z
print(total)
if __name__ == "__main__":
main()
gew1fw