今天的主要任务是补昨晚cf的题目和看饶齐博客题解。
cf:虽然B挂了终测,不过还是重回蓝名。。。
用到的知识:模拟,思维,GCD,区间dp(记忆化bfs)。其实主要还是思维。
B题挂了终测,主要犯了两个错误:
1、在筛一个数的非1因子时,忘了还包括它本身。
2、题目只要求求任意一个合法的因子。所以其实只需要筛出质因子就可以了。至于题解里取lcm的gcd,再挨个去gcd的方法虽然可行,但是没有这样直观。
C题hack了两个,主要错误:
1、单个字母特判。(本场A题好多人没判 n=1 WA了一发)
2、暴力模拟卡数据。
3、如果复制串的话,最后答案要和n取最小值!!!
D题是区间dp,我用dfs没记忆化然T了,也没来得及改。枚举每一个根节点,记忆化区间为左子树还是右子树,是否可行。已经补完。
然后今天主要看了饶齐博客里树状数组、RMQ的所有题解及线段树的部分题解。
树状数组主要还是区间更新值、加值区间查询和、最大值等,离散化、逆序数等问题,题目特点一般都比较明显。
而RMQ主要处理离线的区间查询问题。可以求区间和、最大值、gcd等,也可以加二分查询区间最大值最远的延伸距离。甚至可以处理一些动态区间问题。。。代码短而且好理解。。。当然也可以与树上的一些算法结合。。。比如之前的dfs序+LCA+思维。。。
然后线段树解决的问题范围就比较广了。。。除了基本的区间最值、和、乘积等还可以进行一些特殊的修改(小于v的都改为v这样的),但是我个人对线段树的运用还不够熟练,还需要更多的题来练习。
继续加油。