前缀和表长什么样

运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; vector<long

开始练习 →

用它求中间三个数的和

同一张表,求下标 1 到 3 的和。运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace st

开始练习 →

把前缀和表建出来

补全 build_prefix:返回一个数组,第 i 项是前 i+1 个数的总和。建好之后把整张表拼起来输出(用 / 隔开)。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

用前缀和查区间和

补全 range_sum:用前缀和求下标 l 到 r 的和。l 是 0 的时候不能去取 p[-1]。求下标 1 到 3 的和。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

换来的到底是多少

补全两个函数:brute_ops(n, m) 返回「每次都从头加一遍」做 m 次查询的操作数;prefix_ops(n, m) 返回「先建表再查」的操作数。算 n=1000、m=1000,把两个数用 / 拼起来输出。 (本题用 g++ -s

开始练习 →

小数据上平方有时更快

数据量很小时,O(n²) 的做法有时反而比 O(n log n) 快,因为【0】。

开始练习 →

能撑多大数据看什么

第 1 步:数据量一次次翻倍 第 2 步:n=100 第 3 步:再翻一倍 第 4 步:再翻一倍 第 5 步:n 列 ×2,n² 列 ×4 n n 次 n² 次 100 100 10000 200 200 40000 400 400 160

开始练习 →

数据量翻倍平方级会怎样

数据量翻一倍,一个 O(n²) 的算法耗时大约变成原来的【0】。

开始练习 →

翻倍之后差了几倍

运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; long long sq(l

开始练习 →

大数据下两种做法差多少

一千个元素、一千次查询。运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; lo

开始练习 →