C++ 求解长数组变换后两数字平方和,大数组信息新方式处理!
以下是使用 C++ 实现的代码: ```cpp #include <iostream> #include <vector> const int MOD = 1e9 + 7; // 合并数组直到只剩下两个元素 std::vector<long long> mergeArray(const std::vector<long long>& arr) { std::vector<long long> current = arr; while (current.size() > 2) { std::vector<long long> next; for (int i = 0; i < current.size(); i += 2) { if (i + 1 < current.size()) { next.push_back((current[i] + current[i + 1]) % MOD); } else { next.push_back(current[i]); } } current = next; } return current; } int main() { int k; std::cin >> k; std::vector<long long> arr; for (int i = 0; i < k; ++i) { int a, b; std::cin >> a >> b; for (int j = 0; j < a; ++j) { arr.push_back(b); } } std::vector<long long> result = mergeArray(arr); long long ans = (result[0] * result[0] + result[1] * result[1]) % MOD; std::cout << ans << std::endl; return 0; } ``` 代码解释: 1. 常量定义:定义常量 `MOD` 为 `1e9 + 7`,用于取模运算。 2. `mergeArray` 函数:该函数接收一个整数向量 `arr`,通过循环不断合并相邻元素,直到向量中只剩下两个元素为止。每次合并时,如果有奇数个元素,最后一个元素保持不变。合并后的结果累加上之前的结果,并对 `MOD` 取模。 3. 主函数: - 读取输入的信息条数 `k`。 - 针对每条信息,读取 `a` 和 `b`,并将 `b` 添加到数组 `arr` 中 `a` 次。 - 调用 `mergeArray` 函数对数组进行合并,得到最终的两个元素。 - 计算这两个元素的平方和,并对 `MOD` 取模。 - 输出结果。 复杂度分析: - 时间复杂度:$O(n log n)$,其中 $n$ 是数组的长度。每次合并操作的时间复杂度为 $O(n)$,最多需要进行 $log n$ 次合并。 - 空间复杂度:$O(n)$,主要用于存储合并过程中的中间结果。 ######[AI问答 | 636点数解答 | 2026-01-27 20:10:18]
- 揭秘!任意各位不同三位数经变换最终如何锁定 495 及编程求解变换次数(字节豆包 | 167点数解答 | 2025-04-22 20:47:58)332
- C++ 实现:精准统计给定范围 [L, R] 内数字 2 出现的次数及代码详解(字节豆包 | 401点数解答 | 2026-02-05 21:17:05)64
- C++实现:统计[L, R]范围内数字2出现的次数及代码详解(字节豆包 | 489点数解答 | 2026-02-07 17:12:26)79
- Java:抽象类 Vehicle 及子类 Car、MotorBike 实战演示(讯飞星火 | 440点数解答 | 2024-06-06 23:18:54)331
- 用 Pandas 深度剖析数据:从读取到统计分析全流程实战(GPT | 642点数解答 | 2024-06-30 15:39:49)380
- 用 Pandas 深入分析招聘数据:从数据读取到可视化全流程解析(GPT | 1539点数解答 | 2024-06-30 15:56:50)390
- Python:用正则表达式从含多种字符的字符串中提取英文、数字和中文单词(GPT | 522点数解答 | 2024-05-31 19:05:27)336
- Python:用正则表达式结合 split 思路提取一行字符串中的英文、数字和中文单词 (GPT | 399点数解答 | 2024-05-31 19:07:31)334
- 繁体字编码代码修改:人物名字合法性验证函数转简体版(字节豆包 | 325点数解答 | 2024-10-21 18:57:01)307
- 计算区间 n 到 m 中数字 x 出现次数的 Python 实现与详解(字节豆包 | 289点数解答 | 2025-12-07 17:14:59)98
- Python 实现:计算区间 n 到 m 中数字 x 出现的次数(字节豆包 | 322点数解答 | 2025-12-13 21:37:08)99
- C++实现计算最少添加数字次数以匹配两个数组元素(字节豆包 | 714点数解答 | 2026-03-08 19:44:54)31