{ "data": { "question": { "questionId": "3989", "questionFrontendId": "3671", "categoryTitle": "Algorithms", "boundTopicId": 3767458, "title": "Sum of Beautiful Subsequences", "titleSlug": "sum-of-beautiful-subsequences", "content": "
You are given an integer array nums of length n.
For every positive integer g, we define the beauty of g as the product of g and the number of strictly increasing subsequences of nums whose greatest common divisor (GCD) is exactly g.
Return the sum of beauty values for all positive integers g.
Since the answer could be very large, return it modulo 109 + 7.
\n
Example 1:
\n\nInput: nums = [1,2,3]
\n\nOutput: 10
\n\nExplanation:
\n\nAll strictly increasing subsequences and their GCDs are:
\n\n| Subsequence | \n\t\t\tGCD | \n\t\t
|---|---|
| [1] | \n\t\t\t1 | \n\t\t
| [2] | \n\t\t\t2 | \n\t\t
| [3] | \n\t\t\t3 | \n\t\t
| [1,2] | \n\t\t\t1 | \n\t\t
| [1,3] | \n\t\t\t1 | \n\t\t
| [2,3] | \n\t\t\t1 | \n\t\t
| [1,2,3] | \n\t\t\t1 | \n\t\t
Calculating beauty for each GCD:
\n\n| GCD | \n\t\t\tCount of subsequences | \n\t\t\tBeauty (GCD × Count) | \n\t\t
|---|---|---|
| 1 | \n\t\t\t5 | \n\t\t\t1 × 5 = 5 | \n\t\t
| 2 | \n\t\t\t1 | \n\t\t\t2 × 1 = 2 | \n\t\t
| 3 | \n\t\t\t1 | \n\t\t\t3 × 1 = 3 | \n\t\t
Total beauty is 5 + 2 + 3 = 10.
Example 2:
\n\nInput: nums = [4,6]
\n\nOutput: 12
\n\nExplanation:
\n\nAll strictly increasing subsequences and their GCDs are:
\n\n| Subsequence | \n\t\t\tGCD | \n\t\t
|---|---|
| [4] | \n\t\t\t4 | \n\t\t
| [6] | \n\t\t\t6 | \n\t\t
| [4,6] | \n\t\t\t2 | \n\t\t
Calculating beauty for each GCD:
\n\n| GCD | \n\t\t\tCount of subsequences | \n\t\t\tBeauty (GCD × Count) | \n\t\t
|---|---|---|
| 2 | \n\t\t\t1 | \n\t\t\t2 × 1 = 2 | \n\t\t
| 4 | \n\t\t\t1 | \n\t\t\t4 × 1 = 4 | \n\t\t
| 6 | \n\t\t\t1 | \n\t\t\t6 × 1 = 6 | \n\t\t
Total beauty is 2 + 4 + 6 = 12.
\n
Constraints:
\n\n1 <= n == nums.length <= 1041 <= nums[i] <= 7 * 104给你一个长度为 n 的整数数组 nums。
对于每个 正整数 g,定义 g 的 美丽值 为 g 与 nums 中符合要求的子序列数量的乘积,子序列需要 严格递增 且最大公约数(GCD)恰好为 g 。
请返回所有正整数 g 的 美丽值 之和。
由于答案可能非常大,请返回结果对 109 + 7 取模后的值。
子序列 是一个 非空 数组,可以通过从另一个数组中删除某些元素(或不删除任何元素)而保持剩余元素顺序不变得到。
\n\n\n\n
示例 1:
\n\n输入:nums = [1,2,3]
\n\n输出:10
\n\n解释:
\n\n所有严格递增子序列及其 GCD 如下:
\n\n| 子序列 | \n\t\t\tGCD | \n\t\t
|---|---|
| [1] | \n\t\t\t1 | \n\t\t
| [2] | \n\t\t\t2 | \n\t\t
| [3] | \n\t\t\t3 | \n\t\t
| [1,2] | \n\t\t\t1 | \n\t\t
| [1,3] | \n\t\t\t1 | \n\t\t
| [2,3] | \n\t\t\t1 | \n\t\t
| [1,2,3] | \n\t\t\t1 | \n\t\t
计算每个 GCD 的美丽值:
\n\n| GCD | \n\t\t\t子序列数量 | \n\t\t\t美丽值 (GCD × 数量) | \n\t\t
|---|---|---|
| 1 | \n\t\t\t5 | \n\t\t\t1 × 5 = 5 | \n\t\t
| 2 | \n\t\t\t1 | \n\t\t\t2 × 1 = 2 | \n\t\t
| 3 | \n\t\t\t1 | \n\t\t\t3 × 1 = 3 | \n\t\t
美丽值总和为 5 + 2 + 3 = 10。
示例 2:
\n\n输入:nums = [4,6]
\n\n输出:12
\n\n解释:
\n\n所有严格递增子序列及其 GCD 如下:
\n\n| 子序列 | \n\t\t\tGCD | \n\t\t
|---|---|
| [4] | \n\t\t\t4 | \n\t\t
| [6] | \n\t\t\t6 | \n\t\t
| [4,6] | \n\t\t\t2 | \n\t\t
计算每个 GCD 的美丽值:
\n\n| GCD | \n\t\t\t子序列数量 | \n\t\t\t美丽值 (GCD × 数量) | \n\t\t
|---|---|---|
| 2 | \n\t\t\t1 | \n\t\t\t2 × 1 = 2 | \n\t\t
| 4 | \n\t\t\t1 | \n\t\t\t4 × 1 = 4 | \n\t\t
| 6 | \n\t\t\t1 | \n\t\t\t6 × 1 = 6 | \n\t\t
美丽值总和为 2 + 4 + 6 = 12。
\n\n
提示:
\n\n1 <= n == nums.length <= 1041 <= nums[i] <= 7 × 104g and keep, in the original order, only those array elements divisible by g; scale them down to x / g so any increasing subsequence here corresponds to a subsequence whose elements are all multiples of g.",
"Count strictly increasing subsequences of that scaled list by assigning ranks (coordinate compression) and maintaining prefix sums of ways for smaller ranks (you may use a Fenwick tree).",
"The count you get, call it cnt_g, includes subsequences whose GCD is g or any multiple of g; it is therefore an overcount for \"exactly g\".",
"To get the number with GCD exactly g, process g from max(nums) down to 1 and subtract counts already assigned to multiples: F[g] = cnt_g - sum{k=2g,3g,...}*F[k] (do arithmetic mod MOD); descending order ensures multiples are known.",
"The final answer is the sum of contributions g * F[g] for all g."
],
"solution": null,
"status": null,
"sampleTestCase": "[1,2,3]",
"metaData": "{\n \"name\": \"totalBeauty\",\n \"params\": [\n {\n \"name\": \"nums\",\n \"type\": \"integer[]\"\n }\n ],\n \"return\": {\n \"type\": \"integer\"\n }\n}",
"judgerAvailable": true,
"judgeType": "large",
"mysqlSchemas": [],
"enableRunCode": true,
"envInfo": "{\"cpp\":[\"C++\",\"\\u7248\\u672c\\uff1a \\u7f16\\u8bd1\\u65f6\\uff0c\\u5c06\\u4f1a\\u91c7\\u7528 \\u4e3a\\u4e86\\u4f7f\\u7528\\u65b9\\u4fbf\\uff0c\\u5927\\u90e8\\u5206\\u6807\\u51c6\\u5e93\\u7684\\u5934\\u6587\\u4ef6\\u5df2\\u7ecf\\u88ab\\u81ea\\u52a8\\u5bfc\\u5165\\u3002<\\/p>\"],\"java\":[\"Java\",\" \\u7248\\u672c\\uff1a \\u4e3a\\u4e86\\u65b9\\u4fbf\\u8d77\\u89c1\\uff0c\\u5927\\u90e8\\u5206\\u6807\\u51c6\\u5e93\\u7684\\u5934\\u6587\\u4ef6\\u5df2\\u88ab\\u5bfc\\u5165\\u3002<\\/p>\\r\\n\\r\\n \\u5305\\u542b Pair \\u7c7b: https:\\/\\/docs.oracle.com\\/javase\\/8\\/javafx\\/api\\/javafx\\/util\\/Pair.html <\\/p>\"],\"python\":[\"Python\",\" \\u7248\\u672c\\uff1a \\u4e3a\\u4e86\\u65b9\\u4fbf\\u8d77\\u89c1\\uff0c\\u5927\\u90e8\\u5206\\u5e38\\u7528\\u5e93\\u5df2\\u7ecf\\u88ab\\u81ea\\u52a8 \\u5bfc\\u5165\\uff0c\\u5982\\uff1aarray<\\/a>, bisect<\\/a>, collections<\\/a>\\u3002\\u5982\\u679c\\u60a8\\u9700\\u8981\\u4f7f\\u7528\\u5176\\u4ed6\\u5e93\\u51fd\\u6570\\uff0c\\u8bf7\\u81ea\\u884c\\u5bfc\\u5165\\u3002<\\/p>\\r\\n\\r\\n \\u6ce8\\u610f Python 2.7 \\u5df2\\u4e0d\\u518d\\u7ef4\\u62a4<\\/a>\\u3002 \\u5982\\u60f3\\u4f7f\\u7528\\u6700\\u65b0\\u7248\\u7684Python\\uff0c\\u8bf7\\u9009\\u62e9Python 3\\u3002<\\/p>\"],\"c\":[\"C\",\" \\u7248\\u672c\\uff1a \\u7f16\\u8bd1\\u65f6\\uff0c\\u5c06\\u4f1a\\u91c7\\u7528 \\u4e3a\\u4e86\\u4f7f\\u7528\\u65b9\\u4fbf\\uff0c\\u5927\\u90e8\\u5206\\u6807\\u51c6\\u5e93\\u7684\\u5934\\u6587\\u4ef6\\u5df2\\u7ecf\\u88ab\\u81ea\\u52a8\\u5bfc\\u5165\\u3002<\\/p>\\r\\n\\r\\n \\u5982\\u60f3\\u4f7f\\u7528\\u54c8\\u5e0c\\u8868\\u8fd0\\u7b97, \\u60a8\\u53ef\\u4ee5\\u4f7f\\u7528 uthash<\\/a>\\u3002 \\\"uthash.h\\\"\\u5df2\\u7ecf\\u9ed8\\u8ba4\\u88ab\\u5bfc\\u5165\\u3002\\u8bf7\\u770b\\u5982\\u4e0b\\u793a\\u4f8b:<\\/p>\\r\\n\\r\\n 1. \\u5f80\\u54c8\\u5e0c\\u8868\\u4e2d\\u6dfb\\u52a0\\u4e00\\u4e2a\\u5bf9\\u8c61\\uff1a<\\/b>\\r\\n 2. \\u5728\\u54c8\\u5e0c\\u8868\\u4e2d\\u67e5\\u627e\\u4e00\\u4e2a\\u5bf9\\u8c61\\uff1a<\\/b>\\r\\n 3. \\u4ece\\u54c8\\u5e0c\\u8868\\u4e2d\\u5220\\u9664\\u4e00\\u4e2a\\u5bf9\\u8c61\\uff1a<\\/b>\\r\\n C# 13<\\/a> \\u8fd0\\u884c\\u5728 .NET 9 \\u4e0a<\\/p>\"],\"javascript\":[\"JavaScript\",\" \\u7248\\u672c\\uff1a \\u60a8\\u7684\\u4ee3\\u7801\\u5728\\u6267\\u884c\\u65f6\\u5c06\\u5e26\\u4e0a lodash.js<\\/a> \\u5e93\\u5df2\\u7ecf\\u9ed8\\u8ba4\\u88ab\\u5305\\u542b\\u3002<\\/p>\\r\\n\\r\\n \\u60a8\\u53ef\\u4f7f\\u7528 datastructures-js <\\/a>\\u5e93\\u6240\\u63d0\\u4f9b\\u7684\\u6570\\u636e\\u7ed3\\u6784\\u3002<\\/p>\"],\"ruby\":[\"Ruby\",\" \\u4f7f\\u7528 \\u4e00\\u4e9b\\u5e38\\u7528\\u7684\\u6570\\u636e\\u7ed3\\u6784\\u5df2\\u5728 Algorithms \\u6a21\\u5757\\u4e2d\\u63d0\\u4f9b\\uff1ahttps:\\/\\/www.rubydoc.info\\/github\\/kanwei\\/algorithms\\/Algorithms<\\/p>\"],\"swift\":[\"Swift\",\" \\u7248\\u672c\\uff1a \\u60a8\\u53ef\\u4ee5\\u4f7f\\u7528 swift-algorithms 1.2.0<\\/a>\\uff0cswift-collections 1.1.4<\\/a> \\u548c swift-numerics 1.0.2<\\/a><\\/p>\\r\\n\\r\\n \\u6211\\u4eec\\u901a\\u5e38\\u4fdd\\u8bc1\\u66f4\\u65b0\\u5230 Apple\\u653e\\u51fa\\u7684\\u6700\\u65b0\\u7248Swift<\\/a>\\u3002\\u5982\\u679c\\u60a8\\u53d1\\u73b0Swift\\u4e0d\\u662f\\u6700\\u65b0\\u7248\\u7684\\uff0c\\u8bf7\\u8054\\u7cfb\\u6211\\u4eec\\uff01\\u6211\\u4eec\\u5c06\\u5c3d\\u5feb\\u66f4\\u65b0\\u3002<\\/p>\"],\"golang\":[\"Go\",\" \\u7248\\u672c\\uff1a \\u652f\\u6301 https:\\/\\/pkg.go.dev\\/github.com\\/emirpasic\\/gods@v1.18.1<\\/a> \\u548c https:\\/\\/pkg.go.dev\\/github.com\\/emirpasic\\/gods\\/v2@v2.0.0-alpha<\\/a> \\u7b2c\\u4e09\\u65b9\\u5e93\\u3002<\\/p>\"],\"python3\":[\"Python3\",\" \\u7248\\u672c\\uff1a \\u4e3a\\u4e86\\u65b9\\u4fbf\\u8d77\\u89c1\\uff0c\\u5927\\u90e8\\u5206\\u5e38\\u7528\\u5e93\\u5df2\\u7ecf\\u88ab\\u81ea\\u52a8 \\u5bfc\\u5165\\uff0c\\u5982array<\\/a>, bisect<\\/a>, collections<\\/a>\\u3002 \\u5982\\u679c\\u60a8\\u9700\\u8981\\u4f7f\\u7528\\u5176\\u4ed6\\u5e93\\u51fd\\u6570\\uff0c\\u8bf7\\u81ea\\u884c\\u5bfc\\u5165\\u3002<\\/p>\\r\\n\\r\\n \\u5982\\u9700\\u4f7f\\u7528 Map\\/TreeMap \\u6570\\u636e\\u7ed3\\u6784\\uff0c\\u60a8\\u53ef\\u4f7f\\u7528 sortedcontainers<\\/a> \\u5e93\\u3002<\\/p>\"],\"scala\":[\"Scala\",\" \\u7248\\u672c\\uff1a \\u7248\\u672c\\uff1a \\u7248\\u672c\\uff1a \\u652f\\u6301 crates.io \\u7684 rand<\\/a>\\u3001regex<\\/a> \\u548c itertools<\\/a><\\/p>\"],\"php\":[\"PHP\",\" With bcmath module.<\\/p>\"],\"typescript\":[\"TypeScript\",\" TypeScript 5.7.3<\\/p>\\r\\n\\r\\n Compile Options: --alwaysStrict --strictBindCallApply --strictFunctionTypes --target ES2024<\\/p>\\r\\n\\r\\n lodash.js<\\/a> \\u5e93\\u5df2\\u7ecf\\u9ed8\\u8ba4\\u88ab\\u5305\\u542b\\u3002<\\/p>\\r\\n\\r\\n \\u60a8\\u53ef\\u4f7f\\u7528 datastructures-js <\\/a>\\u5e93\\u6240\\u63d0\\u4f9b\\u7684\\u6570\\u636e\\u7ed3\\u6784\\u3002<\\/p>\"],\"racket\":[\"Racket\",\" Racket CS<\\/a> v8.15<\\/p>\\r\\n\\r\\n \\u4f7f\\u7528 #lang racket<\\/p>\\r\\n\\r\\n \\u5df2\\u9884\\u5148 (require data\\/gvector data\\/queue data\\/order data\\/heap). \\u82e5\\u9700\\u4f7f\\u7528\\u5176\\u5b83\\u6570\\u636e\\u7ed3\\u6784\\uff0c\\u53ef\\u81ea\\u884c require\\u3002<\\/p>\"],\"erlang\":[\"Erlang\",\"Erlang\\/OTP 26\"],\"elixir\":[\"Elixir\",\"Elixir 1.17 with Erlang\\/OTP 26\"],\"dart\":[\"Dart\",\" Dart 3.2\\u3002\\u60a8\\u53ef\\u4ee5\\u4f7f\\u7528 collection<\\/a> \\u5305<\\/p>\\r\\n\\r\\n \\u60a8\\u7684\\u4ee3\\u7801\\u5c06\\u4f1a\\u88ab\\u4e0d\\u7f16\\u8bd1\\u76f4\\u63a5\\u8fd0\\u884c<\\/p>\"],\"cangjie\":[\"Cangjie\",\" \\u7248\\u672c\\uff1a1.0.0 LTS (cjnative)<\\/p>\\r\\n\\r\\n \\u7f16\\u8bd1\\u53c2\\u6570\\uff1a \\u5feb\\u901f\\u5165\\u95e8\\u8bf7\\u67e5\\u9605\\u300c\\u4ed3\\u9889\\u7f16\\u7a0b\\u8bed\\u8a00\\u5f00\\u53d1\\u6307\\u5357\\u300d<\\/a><\\/p>\"]}",
"book": null,
"isSubscribed": false,
"isDailyQuestion": false,
"dailyRecordStatus": null,
"editorType": "CKEDITOR",
"ugcQuestionId": null,
"style": "LEETCODE",
"exampleTestcases": "[1,2,3]\n[4,6]",
"__typename": "QuestionNode"
}
}
}clang 19<\\/code> \\u91c7\\u7528\\u6700\\u65b0 C++ 23 \\u6807\\u51c6\\uff0c\\u5e76\\u4f7f\\u7528 GCC 14 \\u63d0\\u4f9b\\u7684 libstdc++<\\/code>\\u3002<\\/p>\\r\\n\\r\\n-O2<\\/code> \\u7ea7\\u4f18\\u5316\\uff0c\\u5e76\\u63d0\\u4f9b -gline-tables-only<\\/code> \\u53c2\\u6570\\u3002AddressSanitizer<\\/a> \\u4e5f\\u88ab\\u5f00\\u542f\\u6765\\u68c0\\u6d4b out-of-bounds<\\/code> \\u548c use-after-free<\\/code> \\u9519\\u8bef\\u3002<\\/p>\\r\\n\\r\\nOpenJDK 21<\\/code>\\u3002\\u4f7f\\u7528\\u7f16\\u8bd1\\u53c2\\u6570 --enable-preview --release 21<\\/code><\\/p>\\r\\n\\r\\nPython 2.7.18<\\/code><\\/p>\\r\\n\\r\\nGCC 14<\\/code>\\uff0c\\u91c7\\u7528 GNU11 \\u6807\\u51c6\\u3002<\\/p>\\r\\n\\r\\n-O2<\\/code> \\u7ea7\\u4f18\\u5316\\uff0c\\u5e76\\u63d0\\u4f9b -g1<\\/code> \\u53c2\\u6570\\u3002 AddressSanitizer<\\/a> \\u4e5f\\u88ab\\u5f00\\u542f\\u6765\\u68c0\\u6d4b out-of-bounds<\\/code> \\u548c use-after-free<\\/code> \\u9519\\u8bef\\u3002<\\/p>\\r\\n\\r\\n\\r\\nstruct hash_entry {\\r\\n int id; \\/* we'll use this field as the key *\\/\\r\\n char name[10];\\r\\n UT_hash_handle hh; \\/* makes this structure hashable *\\/\\r\\n};\\r\\n\\r\\nstruct hash_entry *users = NULL;\\r\\n\\r\\nvoid add_user(struct hash_entry *s) {\\r\\n HASH_ADD_INT(users, id, s);\\r\\n}\\r\\n<\\/pre>\\r\\n<\\/p>\\r\\n\\r\\n\\r\\nstruct hash_entry *find_user(int user_id) {\\r\\n struct hash_entry *s;\\r\\n HASH_FIND_INT(users, &user_id, s);\\r\\n return s;\\r\\n}\\r\\n<\\/pre>\\r\\n<\\/p>\\r\\n\\r\\n\\r\\nvoid delete_user(struct hash_entry *user) {\\r\\n HASH_DEL(users, user); \\r\\n}\\r\\n<\\/pre>\\r\\n<\\/p>\"],\"csharp\":[\"C#\",\"Node.js 22.14.0<\\/code><\\/p>\\r\\n\\r\\n--harmony<\\/code> \\u6807\\u8bb0\\u6765\\u5f00\\u542f \\u65b0\\u7248ES6\\u7279\\u6027<\\/a>\\u3002<\\/p>\\r\\n\\r\\nRuby 3.2<\\/code> \\u6267\\u884c<\\/p>\\r\\n\\r\\nSwift 6.0<\\/code><\\/p>\\r\\n\\r\\nGo 1.23<\\/code><\\/p>\\r\\n\\r\\nPython 3.11<\\/code><\\/p>\\r\\n\\r\\nScala 3.3.1<\\/code><\\/p>\"],\"kotlin\":[\"Kotlin\",\"Kotlin 2.1.10<\\/code><\\/p>\"],\"rust\":[\"Rust\",\"rust 1.88.0<\\/code>\\uff0c\\u4f7f\\u7528 edition 2024\\u3002<\\/p>\\r\\n\\r\\nPHP 8.2<\\/code>.<\\/p>\\r\\n\\r\\n-O2 --disable-reflection<\\/code><\\/p>\\r\\n\\r\\n