4.27 总结
T1:合并石子(20min)
(做了第二遍了还是有点问题,这个要注意)
用算法:从前往后找出第一个a[i]<=a[i+2]的位置,向前遍历找到比a[i]+a[i+1]大的位置停止,将这个数移到此位置后面。
用vetor数组来实现
T2:信使(30min)
图论+单源最短路问题,数据范围足够小,N3的更新最小值。但是当时做的时候一心考虑直接上复杂的最短路算法,不是不可以但没必要。这个题浪费时间太多导致后面做不完。
T3:pgrune(15min)
这是两个物品的背包DP,多重背包和完全背包结合,总体来说很基础。所以以后遇到这样的题,捕捉完特性之后可以提速了
T4:最大乘积(20min)
上课时讲过的一道题,注意起始的范围,j从0开始。计算时,取本身代表的数和上一个*这一个的最大值。
T5:最小花费(40min)
这个做出来的答案很离谱,直接原因是我计算转账数额的方式太离谱了。。
事实上,只需要把(z-100)/10-这个数加进去,用乘号链接取最小,最后用100除即可得到答案。
还有一个原因,数组预设没有注意。要把联通图数组的i-i设为1,距离dis数组预设为起点到i的距离,然后再dij。如果觉得这样很不方便容易忽略的话,可以先写一些注释提醒自己(近期自己不怎么写注释了,觉得这个习惯还是要继续的,能避免很多问题频频出现)