P15500 [ICPC 2025 APC] Squares on Grid Lines

题目描述

在一个二维平面上,有一个边长为 $n$ 的正方形,它被划分成 $1 \times 1$ 的单元格网格,总计有 $n^{2}$ 个单元格。 你的任务是回答 $q$ 个查询,查询编号为 $1$ 到 $q$,描述如下。在第 $i$ 个查询中,你会得到一个实数 $s_{i}$,你需要计算在平面上放置四个点的方案数,使得: - 每个点都位于某个单元格的边界上(不必是同一个单元格),且 - 这四个点构成一个面积为 $s_{i}$ 的正方形的顶点。 这里,由这些点构成的正方形的边不必与单元格的边平行。如果存在无穷多种有效放置方式,你必须报告这一情况。 如果存在一个点出现在一种放置方式中但不出现在另一种中,则认为这两种放置方式不同。

输入格式

输入的第一行包含两个整数 $n$ 和 $q$($1\le n\le 2000$,$1\le q\le 100\,000$)。接下来的 $q$ 行中的第 $i$ 行包含一个实数 $s_{i}$($0.01\le s_{i}\le n^{2}$),小数点后恰好有两位数字。

输出格式

输出 $q$ 行。第 $i$ 行应包含第 $i$ 个查询的有效放置方式的数量。如果存在无穷多种,则输出 $-1$。

说明/提示

**样例输入/输出 #1 的解释** 对于查询 $1$ 和 $2$,有效的放置方式如图 I.1 所示。上方的两种放置方式对应查询 $1$,下方的四种放置方式对应查询 $2$。在每种放置方式中,阴影区域表示由这些点构成的正方形。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/iu5cygv5.png) 图 I.1:样例输入 #1 的图示。 ::: 翻译由 DeepSeek 完成