考试
T1 a 20 我的深搜排列写错了……【不知道为什么我要】在dfs里改动顺序,造成了WA成dog的后果。(;¬_¬)
T2 b 20 暴力都没打完,交了一个
printf("GCD is too tall\n");
哈哈哈哈哈。
T3 c 0 打完暴力然而超时了(°ー°〃)。。。=3暴力太丑了
【小结】所以只有40分垫底啊还是好伤心!我还以为至少有120保底的T^T
讲题
T1 真是没什么好讲的了啊(′~`;)
T2 说是数据很水,所以DFS+最优性剪枝可过azzz
T3 我们可以先预处理出以 1 为根,每个点子树的大小,记为 size[],还有整棵树的的大小 n(输入的),考虑以 i 为根的答案 f[i],如果把根转到某个儿子 j上,那么对于以 j 为根的子树的所有点来说,距离都减了 1,总共减了 size[j];对于其它点,距离都加了 1,总共加了 n - size[j],所以:f[j] = f[i] + n - size[j] * 2。我们只需要先算出f[1],再整棵树深搜一遍,就可以计算出所有的 f[]了,记个最小值即可。
【小结】In fact, 这三道题都很好想啦,但是我今天挂在第一题上面时间太太太太太太太久了。。。可能昨天没睡好,刚开始考的时候思路很混乱。
晚上放假!hiahiahia…要收拾上学用品了==( ͡° ͜ʖ ͡°)✧
that’s all。【???】