周一和周二
bzoj1706月赛
- 回文数对:数位dp,枚举前导0个数,同时从高位到低位,低位到高位dp
- 博饼切割:圆与多边形面积交
- 互质序列:利用gcd变化次数是log,直接枚举前后缀的变化点统计答案
- Karp-de-Chant Number:贪心确定顺序后dp,注意背包的空间是n^2级别的
- 原谅字符串:用bitset维护匹配,一个新思路!
- 城市规划:看清题!是每个人行道只要在建筑物前就有贡献直接合并区间,枚举,统计贡献的时候差分一下
bzoj1705月赛
- 线段游戏:把序列分成两个不含逆序对的序列,问方案数。
ob1: 看成二分图,答案是2^联通块个数
ob2: 判奇环等价于最长下降子序列长度<=2
ob3: 可以用并查集+贪心维护连通性,也可以直接在线段树上找边,每个点只被访问一次
总结1:
这些月赛题都比较套路,思路不难想到,但是仍然没有快速敏锐的发现题目的性质。
想题的时候要把细节也想清楚,深入全面的思考。不能模糊、不清晰
四边形不等式和决策单调性
学习收获:
- 如果满足决策单调性,可以用挨个加入决策点+二分,分治解决O(nlogn)
- 如果满足斜率优化的形式(到决策点的最优性是凸函数,单峰)O(n)
- 四边形不等式要大胆猜结论,然后再证明:交叉代价<包含代价,最后可以推出dp也满足四边形不等式和决策单调性
f[i][j] = min(f[i][k]+f[k][j]+w[i][j])
直接引用大佬博客,不再赘述
这里有一些题 - 例题
- bzoj 1563 小G的诗人
- bzoj 2739: 最远点
- bzoj 4367: [IOI2014]holiday假期
- bzoj 3675: [Apio2014]序列分割
- BZOJ2216 [Poi2011]Lightning Conductor
总结2:
学习以前不太熟悉的算法,或者新的知识
要踏实。全面。尽量一次性解决疑惑,全面的掌握各种方面的特性:证明,实现算法,各类例题
学习一种算法的时间不能太长,各种类型的题见几道即可,做很多相同的题完全浪费时间
要自己实现代码
总结3:
博客应该记录最重的,有价值的东西
不是所有琐碎的信息都记录,提高效率,不要浪费时间!!