#P8447. 「FAOI-R1」完美的平方数

    ID: 7606 Type: RemoteJudge 1000ms 128MiB Tried: 4 Accepted: 0 Difficulty: 9 Uploaded By: Tags>动态规划,dp数学交互题Special JudgeO2优化背包

「FAOI-R1」完美的平方数

题目描述

给定一个正整数 mm。现有 QQ 个询问,每个询问给定一个正整数 nn,要求你从 1,4,9,16,…,m21,4,9,16,\ldots,m^2 中取出若干个数(同一个数可以取出多次),使它们的和恰好为 nn。问最少取出多少个数?(如果无解,则输出 −1-1)

输入格式

本题有多组数据。

第一行,一个正整数 TT,代表数据组数。

对于每组数据:

第一行,两个正整数 m,Qm,Q。

下面 QQ 行,每行一个正整数 nn。

输出格式

对于每组数据的每个询问,输出一行一个正整数,表示答案。

5
1 5
1
2
3
4
5
5 5
8
20
25
37
49
11 1
179
13 1
507
19 1
841
1
2
3
4
5
2
2
1
4
4
3
3
4

提示

样例解释:

对于第一组数据,显然答案是 nn,因为你只能取 11。

对于第二组数据:

  • 8=22+228=2^2+2^2;
  • 20=42+2220=4^2+2^2;
  • 25=5225=5^2;
  • 37=52+22+22+2237=5^2+2^2+2^2+2^2;(或 37=42+42+22+1237=4^2+4^2+2^2+1^2)
  • 49=52+42+22+2249=5^2+4^2+2^2+2^2;(或 49=42+42+42+1249=4^2+4^2+4^2+1^2)
  • 请注意,37=62+1237=6^2+1^2 和 49=7249=7^2 都不是合法的方案,因为该数据中 m=5m=5。

测试点编号 m≤m\le n≤n \le 分值
11 3030 10410^4 4040
2∼32 \sim 3 101810^{18} 15×215 \times 2
4∼94 \sim 9 500500 5×65 \times 6

对于 100%100\% 的数据,1≤T≤301 \le T \le 30,1≤Q≤1041 \le Q \le 10^4,1≤m≤5001 \le m \le 500,1≤n≤10181 \le n \le 10^{18},单个测试点中所有数据的 mm 的和(∑m\sum m)满足 1≤∑m≤5001 \le \sum m \le 500。