由题可知最大情况为(n + 1) * 3 * 3 - n,然而我们无法得知最小情况时三个数之间的关系。 故考虑DP打表,算出某个数两个数相乘时最小的值,由该值递推第三个数。 打表算法O(nlogn),查询O(1) A题代码 #pragma GCC optimize("O3") #include <iostream> #include &…
根据Floyd算法我们可以通过状态转移方程解决一个无向图或者有向图中两点之间最短路径的问题,其时间复杂度为O(n³),空间复杂度可以控制在O(n²)(一般情况)。但是在实际运用中如果对Floyd三重循环的ijk顺序有改动,会导致无法正确得出两点之间的最短路径的问题。 正确的做法是 [code lang="cpp"] for(int k…