2018年8月20日训练日记

今天的主要任务是补昨晚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这样的),但是我个人对线段树的运用还不够熟练,还需要更多的题来练习。

继续加油。

你可能感兴趣的:(训练日记)