[QkOI#R1] Quark and Equations
题目描述
给定 n , m n,m n,m,求有几组正整数对 ( i , j ) (i,j) (i,j) 满足下列方程组:
{ i + j = n ⌊ i j ⌋ + ⌈ j i ⌉ = m \begin{cases} i+j=n \\ \lfloor\frac{i}{j}\rfloor+\lceil\frac{j}{i}\rceil=m \end{cases} {i+j=n⌊ji⌋+⌈ij⌉=m
上式中, ⌊ x ⌋ \lfloor x\rfloor ⌊x⌋ 表示对 x x x 向下取整, ⌈ x ⌉ \lceil x\rceil ⌈x⌉ 表示对 x x x 向上取整。
输入格式
本题单个数据点含多组数据。
第一行一个整数 T T T 表示这个数据点有几组数据。
接下来 T T T 行每行两个整数 n , m n,m n,m ,含义如题面所述。
输出格式
你的输出应有 T T T 行。
对于每一组数据,输出一行一个整数表示你的答案。
样例 #1
样例输入 #1
2
2 2
2 1
样例输出 #1
1
0
样例 #2
样例输入 #2
1
6 2
样例输出 #2
2
提示
样例解释
当
n
=
m
=
2
n=m=2
n=m=2 时,只有
(
1
,
1
)
(1,1)
(1,1) 满足条件。
当
n
=
2
,
m
=
1
n=2,m=1
n=2,m=1 时,无解。
当
n
=
6
,
m
=
2
n=6,m=2
n=6,m=2 时,只有
(
2
,
4
)
,
(
3
,
3
)
(2,4),(3,3)
(2,4),(3,3) 满足条件。
数据范围
本题采用捆绑测试。
- Subtask 1(10 pts): T , n , m ≤ 500 T,n,m\le 500 T,n,m≤500。
- Subtask 2(40 pts): T , n , m ≤ 5000 T,n,m\le 5000 T,n,m≤5000。
- Subtask 3(5 pts): m = 1 m=1 m=1。
- Subtask 4(5 pts): m > n m>n m>n。
- Subtask 5(5 pts): m ∈ [ n − 1 , n ] m\in[n-1,n] m∈[n−1,n]。
- Subtask 6(35 pts):无特殊限制。
对于 100 % 100\% 100% 的数据, 1 ≤ T ≤ 1 0 5 1\le T\le 10^5 1≤T≤105, 1 ≤ n , m ≤ 1 0 7 1\le n,m\le 10^{7} 1≤n,m≤107。
Scratch实现
后续
接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容