又是湘潭大学的,这里贴上来的几题都是昨天湘潭大学新生赛得题目,昨天做完后发现自己智商有问题。于是今天再检验一下,发现
还是没问题的。不过中午没睡觉发现影响还是挺大的。
根据公式:(a1+an)*n/2 = x 所以我们很容易会枚举a1,然后往后找,如果发现比x还要大的话就枚举a1的另一个位置。
这样复杂度还是O(N^2)的。虽然到后面a1和an之间的间隔会变小,但是这题出得比较严格。我用下面O(sqrt(n))复杂度的算法,还是用了600多毫秒。
现在说说下面这个代码:a1n+n(n-1)d/2 = x。注意到n^2没,所以我们枚举n就可以啦。