第九周训练总结(二)
2017-10-29 20:56
218 查看
数论的题目,连着看了好几个都没有思路,感觉题目和看的课件没多大联系。后来有同学建了个专门讨论数论题目的群,哪个题比较容易,有思路就会一起分享,才勉强做了两个。
题意: 给出a,b两个数的最大公约数gcd 和 最小共倍数lcm, 现在要你求出a,b, 并且a是最小的. (a<=b);
V题:
大致的题意是:要求n的k次方,但是n和k非常大的时候没有办法去求(实际上可以模拟的,暂且不论),所以题目要求的数据只是n的k次方的前三位和后三位。
思路:用同余摸定理求出后三位,后来才发现前三位的求法才是卡人的地方,最终用double保存n的k次方,相当于缩小了一定倍数,比如,n的k次方等于344958……那么化成double就是0.344……然后取小数点后3位乘以1000即可。
周六练习赛:
B题:题意:选择最多的字母,使得这些字母都是不同的小写字母,并且它们在原串的位置之间没有大写字母。
思路:直接暴力,因为数据范围小,先枚举头和尾,然后在用bool数组来记录出现了那些小写字母。
数论的知识理解不深刻,做题找不到思路,还是要多看多思考。
W题:
题意: 给出a,b两个数的最大公约数gcd 和 最小共倍数lcm, 现在要你求出a,b, 并且a是最小的. (a<=b);
解题思路:
1. 求最小共倍数的时候是: lcm(a,b) = (a*b)/gcd(a,b) ==> a*b = lcm(a,b)*gcd(a,b); 并且最小共倍数肯定是最大公约数的整数倍.
2. 即: a要是最小的, 那么最大公约数就是最小的, 最小共倍数就是b了.
V题:大致的题意是:要求n的k次方,但是n和k非常大的时候没有办法去求(实际上可以模拟的,暂且不论),所以题目要求的数据只是n的k次方的前三位和后三位。
思路:用同余摸定理求出后三位,后来才发现前三位的求法才是卡人的地方,最终用double保存n的k次方,相当于缩小了一定倍数,比如,n的k次方等于344958……那么化成double就是0.344……然后取小数点后3位乘以1000即可。
周六练习赛:
B题:题意:选择最多的字母,使得这些字母都是不同的小写字母,并且它们在原串的位置之间没有大写字母。
思路:直接暴力,因为数据范围小,先枚举头和尾,然后在用bool数组来记录出现了那些小写字母。
数论的知识理解不深刻,做题找不到思路,还是要多看多思考。
相关文章推荐
- 2017开学训练第九周周末总结
- 2017开学训练第九周周中总结
- 2017.10.26第九周周中训练总结
- 训练总结 By_Cqy
- 暑假训练总结反思
- 2013 暑假多校训练 1 总结
- pvanet训练并检测自己的数据_流程_报错_总结
- 2017-2018-1 20155234《信息安全系统设计基础》第九周学习总结
- 2017年9月28日训练总结
- 2017年10月26日训练总结
- 第九周周中训练
- 第十四届北京师范大学程序设计竞赛决赛训练总结2017/5/7
- 训练总结7.31
- 20145234黄斐《Java程序设计》第九周学习总结
- 第九周总结
- 2017年10月8日训练总结
- 2017年12月21日训练总结
- 深度学习训练的小技巧,调参经验。总结与记录
- 2017年9月7日训练总结
- 2015多校联合训练总结