【欧拉计划】23. Non-abundant sums
(本题取 $n=28123$)
【思路】$\mathcal O(n \sqrt n)$ 预处理因数个数(用 Problem 21 的思路可优化至 $\mathcal O(n)$),然后 $\mathcal O(n^2)$ 模拟。最终的时间复杂度都为 $\mathcal O(n^2)$:
(本题取 $n=28123$)
【思路】$\mathcal O(n \sqrt n)$ 预处理因数个数(用 Problem 21 的思路可优化至 $\mathcal O(n)$),然后 $\mathcal O(n^2)$ 模拟。最终的时间复杂度都为 $\mathcal O(n^2)$:
【思路】从文件读入所有名字,然后模拟。难点在于读入的方法。当然也可以另编写一个程序,将所有名字每几个就换一次行,然后把表存在最终程序里(详见 Problem 42):
(本题取 $n=10000$)
【思路】先 $\mathcal O(n)$ 预处理 $1 \sim 10000$ 因数个数,然后 $\mathcal O(n)$ 枚举,总体时间复杂度仍为 $\mathcal O(n)$:
【思路】Python
模拟 / C/C++
高精度:
【思路】按照题意模拟即可:
(本题取 $n=16$)
【思路】暴力 DFS,时间复杂度为 $\mathcal O(2^n)$。
【优化】采用 $\mathcal O(n^2)$ 的 DP:
(本题取 $n=1000$)
【思路】本题细节较多,可先预处理一些数的字母个数,这样后面的数就可以由前面递推而来。时间复杂度为 $\mathcal O(n)$。
【思路】Python
可简单模拟,但在 C/C++
中需用高精度:
(本题取 $n=20$)
【思路】$\mathcal O(n^2)$ DP 即可:
(本题取 $n=1000000$,规定 $\text{col}_n$ 为 $n$ 的序列长度)
【思路】直接 $\mathcal O(n \max {\text{col}_i})$ 求解: