翻车……而且比昨天翻得还彻底。
估分:100+50+0+50=200。
实际得分:62.5+8.7+0+62.5=133.7。
第一题、第二题、第三题我都是可以切的,但是在比赛的时候我一题都没切。图论是我的弱项,以后要恶补图论了。
第一题:
直接bfs就可以了。比赛的时候因为细节WA了。
第二题:
一开始就想到了每读入一个占领的城市就spfa一次,路径用hash维护。
这样的话时间复杂度是
o(nakm)
(k是一个常数,在2~3之间),会时超……
懵逼十分钟以后还没有想出优化,就弃疗了。
正解:在进行新的一次spfa之前dis不要清零,时间复杂度会大大减少。
假如想久一点说不定这题就切了。
第三题:
比赛的时候就想到了最小生成树,但是因为奇奇怪怪的原因觉得最小生成树不行,然后就没有打。
正解:最小生成树
第四题:
比赛的时候想到了dfs每一个根节点的子节点数,然后输出,时间复杂度
o(n2)
,没有想出
o(n)
的方法。
正解:sum[i]表示节点 i的儿子节点数目,f[i]表示子树的最大节点数。
一个节点的答案为max(n-sum[i]-1,f[i])。
假如想久一点说不定这题就切了。*2