前缀和表长什么样
运行下面这段程序: #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