- ···关于动态规划的训练心得···
- 见识到了经典的矩形覆盖问题与硬币问题,放在图上做;
- 见识到了刷表法,求树上的最大独立集,形形色色的状态方程,双向Tsp问题的一个处理思路,练到了zhhx大佬教的枚举区间长度的区间DP;
- 时钟归零,未来必定产生的“损失”累加在状态中,通过状态的转移实现累加
- 考虑一个方程的正确性时将子状态定义的含义带入,考虑其转移是否全面;
- 理清状态值的转移过程,代码运行时的转移方向常常跟状态含义所蕴含的方向不同;
- 考虑一个状态是否合适可以从其维度对与状态的转移是否有实际意义出发;
- 有时候一个状态可以定义为“最···还需要多少”,便于回溯整个过程或者减少处理;
- ···其他···
- 拿到一个问题可以考虑一下它的简化版或者子问题,有时候可以通过对子问题的处理推理出对整个问题的处理方法;
- 代码能力比两年之前退步太多,一些简单的东西也经常写不对了,检查时可以考虑从最基本的地方检查,然后再检查核心算法部分;
- 有时候一道题可能成十个小时调不出来,这种时候死磕下去往往是弊大于利,也说明自己写的绝非一种较优的写法,这时候可以参考网上其它人的代码,看看他们写的优在什么地方,换一个写法,这样或许能收获更多东西;
- memset不是什么好东西,初始化double什么的会出问题,非int long long bool的初始化还是老老实实写循环吧;
- gets()好像亮亮了。。。
- 空间多定义一些,+5似乎不怎么保险,小心越界;
- 对于一些较基础的数据结构的维护与离散化的处理做的也不容乐观。。。
- 认真读题,不要0 o不分!
- 写一个不是很basic的处理或写的少时可以多花一点点时间想想怎么写出错的可能性更低;
- 十月的剩余几天可以练练一些基础技巧,十一月练习一般图论。