蓝桥杯第十三届蓝桥杯大赛软件赛决赛C/C++ 研究生组之好等差数列[题目传送门](0好等差数列 - 蓝桥云课 (lanqiao.cn)) 本题大意就不再详细赘述,使用的方法为暴力破解,但最后也可以完全通过。 基本思路为: 枚举公差d,根据题意可以猜测,公差的范围为0–10000/n,由于v最大为10000. 使用哈希表存储对应d条件下的值,根据等差数列的公式我们知道,ai=a1+i*d,现在可以反过来使用,即a1 = ai-i * d,当d为合适的值时,则a1出现的次数将为最多。 例如:1,2,3,5,4.这5个数字。 在公差为0时,1-1*0=1;其中1 * 0中的1为数列的下标。 2-1*0=2;… 在公差为1时,1-1*1=0;2-1 * 2=0;3-1 * 3=0;5-1 * 4=1;4-1 * 5 =-1; 可以看到此时0出现了3次,1和-1均出现1次。则其离好数列的距离为n-3 = 5 -3=2,即将5和4这两个值更改即可。 代码如下所示:
|
原文地址:https://blog.csdn.net/qq_45689158/article/details/136942517
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://www.msipo.com/article-653297.html 如若内容造成侵权/违法违规/事实不符,请联系MSIPO邮箱:3448751423@qq.com进行投诉反馈,一经查实,立即删除!
Copyright © 2024, msipo.com