这周平时在刷蓝桥杯的题目,周天打了一场2021年陕西省的省赛的重现赛。
重现赛我们没打满,打了三个小时,A了四个,不过应该也差不多了。
登录—专业IT笔试面试备考平台_牛客网
以前没学过数论分块,今天学了学。对于一些向下取整的求和问题,将得到的答案分块,每块中答案相同,诸如此类的式子可以用数论分块,复杂度从O(n)降到O(sqrt(n))。
2020年蓝桥杯的一道题目:平面分割,20个圆和20条直线最多把平面分成几部分。以前没怎么做过类似的题目。考虑直线:当我们加入第n条直线的时候,第n条直线最多被原有的n-1条直线切割为n段,平面也就最多增加n个部分,考虑圆:每和一个圆形相交就会有两个交点,所以加入第n个圆会产生2(n-1)个交点,也就是说这个圆会被切割为2(n-1)个部分,平面也就会增加2(n-1)个部分。
考虑直线和圆:
f(n) = f(n-1) + (2m+n)
= f(n-2) + (2m+(n-1)) + (2m+n)
......
= f(1) + (2m+(2)) ... + (2m+n)
= (2 + (m-1) m) + (2mn) + 2 + 3 ... + n
= m^2 - m + 2mn + 1 + n(n+1) / 2