test20170408总结
做题顺序:T1->T2->T3
T1
首先,我把题目转化为求一个点为根的时候子树中深度最大的点的深度。
这个子树查询+树的形态修改的问题的经典做法是维护实链上的虚边连出去的子树的信息。
但是在这题中,实链上的每个节点的虚儿子的信息都统计出来后,仍然无法得到这条实链的答案。
所以我就不会做了……
所以在考试快结束的时候写了一个暴力,得分超出预计啊。
谢超才使用了维护树的直径的做法。
他的思路与我的不同,因为在树中,与一个点的距离最大的点一定是直径的一端。
那么只要维护直径就好了。这个很容易。
期望得分:20分。
实际得分:40分??。
T2
不会做。
感觉这道题就是01背包啊,没听说过01背包还有优化做法。
期望得分:20
实际得分:20分。
T3
这个题目想了很久,仍然没有思路。
于是直接枚举矩阵,然后暴力判断。
期望得分:10
实际得分:10分。
总结
期望得分:50
实际得分:70
思路还是太狭隘了,没有真正打开。
不善于变通,做题的时候容易钻到死胡同里面出不来。
一味追求正解。如果第一题一开始就打暴力的话,可能由暴力算法联想到直径。
这次考试告诉我,我的数据结构题目还是做得太少,对于经典算法的应用与扩展不够熟练。
还是要多见识题目,扩宽自己的视野,释放被拘束的思维!