若一个问题的结论是通过推线性递推式来解,考虑到实际的情况,可以用BM算法的模板,先输入项数再依次输入项,项越多越准确 #include <bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i=int(a);i<int(b);++i) #define mem…
A:贝壳找房 题解:打表,预处理1e5的表,然后根据表进行查询。 题目说了有序,不知道会不会有降序,总之写了也过了 #include <iostream> #include <algorithm> #include <array> #include <limits> #include <cmat…
由题可知最大情况为(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…