把等式改写为 a+b=(c+d)+Ka+b=(c+d)+Ka+b=(c+d)+K。
设 f(s)f(s)f(s) 表示满足 x+y=sx+y=sx+y=s 且 1≤x,y≤N1\le x,y\le N1≤x,y≤N 的有序数对数,则在 2≤s≤2N2\le s\le2N2≤s≤2N 时有 f(s)=min(s−1,2N+1−s)f(s)=\min(s-1,2N+1-s)f(s)=min(s−1,2N+1−s),范围外为零。
枚举 a+ba+ba+b 的和 sss,右侧所需的和就是 s−Ks-Ks−K,贡献为 f(s)f(s−K)f(s)f(s-K)f(s)f(s−K),累加即可。
时间复杂度为 O(N)O(N)O(N),额外空间为 O(1)O(1)O(1)。
注册一个 Hydro 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 Hydro 通用账户