传送门:https://atcoder.jp/contests/abc190/tasks/abc190_d
题意
给一个N,问有多少种等差数列(公差为1)的和等于N,输出个数。
思路
假设我们选择的等差数列为[a,b],则根据题意可以得到 $\frac{(b+a)(b-a+1)}{2}=N$ $(b+a)(b-a + 1)=2N$
不管a和b的奇偶性。都可以得到(b+a)和(b-a+1)一定是一奇一偶。 所以我们只用求出2*N的奇数因子个数,用算数基本定理求。 由于是奇数,所以2的因子就不用了,所以直接求N的奇数因子个数。
注意:任何一组解都能在左边加上一正一负给抵消掉,所以最后结果*2.
1 | # |
本文作者:jujimeizuo
本文地址: https://blog.jujimeizuo.cn/2021/01/30/atcoder-beginner-contest-190-d/
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0 协议。转载请注明出处!