学而思编程每周练习赛-第01周-习题视频讲解与试题分析

梁老师
梁老师 北京小升初老师~

0 人点赞了该文章 · 64 浏览




图片


01

第一   



1.

T1 小于N的质数和:本题难度简单,考察质数判断,注意题目描述是小于N的所有质数


T2 金币:本题难度简单,枚举每一天并把每天和其所在的阶段对应起来


T3 完全平方数:本题难度中等,考察完全平方数判断和算术基本定理。
60分做法:最坏情况下需要乘上自己本身之后的结果才能是一个完全平方数,那么可以枚举1~n之间每个整数i,如果i*n为完全平方数,输出i并及时结束循环。
100分做法:根据算术基本定理,可知大于1的自然数都可以被唯一分解成有限个质数的乘积,如果一个整数是完全平方数,那么该整数被分解之后得到的每个质数一定是偶数个,所以我们对n进行分解质因数,统计每个质因子出现的次数,如果是奇数次,则需要乘上一个该质因子


2.

T1 字符串价值本题难度简单,考察字符串基础,不区分大小写的情况,我可以把所有字符转成大写(或把所有字符转成小写),使用数组f[]记录每个字符是否第一次出现,只要某个字符x出现过就把f[x]=1


T2 消除因子:本题难度中等,考察分解质因数,每次通过分解质因数可以得到n的最小质因子d,然后n减去d,直到n为0,这样可以拿到70分。考虑到如果n是偶数,那么n的最小质因子一定是2,且n减2之后也一定是偶数,这样每次减2,一共需要计算n/2次


T3 平方序列本题难度中等,主要考察全排列算法,需要对相同的排列进行去重,可以使用next_permutation()函数,该函数每次返回下一个字典序的排列,起到了去重作用,但无法进行过程中剪枝,从而拿不到满分。为了方便去重,可以先对原序列从小到达排序,在实现全排列递归函数过程中进行剪枝:

1. 避免相同元素在同一层级出现的情况;

2当前位置的元素和上一个位置的元素和必须是完全平方数在继续搜索



3.

T1 构造数列度中等,一个贪心题目,可以比较容易地总结出规律。但是需要注意字符串和数组的下标的运算


T2 六面世界度较大,六边形地图上BFS,主要练习如何处理六角形地图,视频讲解了一种便于理解的平面坐标方法。实际上还有另一种立体坐标表示方法,广泛应用在游戏开发中,有兴趣可以参考 catlikecoding.com/unity/tutorials/hex-map




02

第一   



1.

:174


:176.29(300)


123
小于N的质数和金币完全平方数
72.99
68.41
37.99



30024
100~14926
250~2993250~9918
200~249321~4922
150~19920



线

10%线:300

20%线:260

30%线:260



2.

:118


:159.34(300)


123
字符串价值消除因子平方序列
73.77
66.99

19.40



3005
100~1495
250~29910
50~9921
200~24916
1~499
150~19952



线

10%线:257

20%线:207

30%线:191



3.

:27


:55.19(200)


12
构造数列六面世界
34.81
20.37



2003
50~993
150~1990
1~4919
100~1492



线

10%线:200

20%线:60

30%线:45



03

第一   



1.


 2.

 3.


图片


添加 家长论坛微信 



发布于 2024-04-02 18:13

免责声明:

本文由 梁老师 原创发布于 家长帮 ,著作权归作者所有。

登录一下,更多精彩内容等你发现,贡献精彩回答,参与评论互动

登录! 还没有账号?去注册

暂无评论

广告
All Rights Reserved Powered BY WeCenter V4.1.0 © 2025 京ICP备20005761号-2