TLE求调

灌水区

@[xpg007](/user/1024680) 1.在cala函数中,你使用了一个循环来遍历所有的数字,并计算它们出现次数的最大公约数的倍数。这个循环的复杂度是O(n),而且在每次循环中还有一次对map的查找操作。如果输入的数字很大,这个过程会很慢。 2.在计算每个数的出现次数的最大公约数的倍数的总和时,你使用了另一个循环来遍历所有的数字,然后在每个循环中进行了除法和乘法操作。这个循环的复杂度也是O(n),并且还有除法和乘法操作,可能会使性能下降。
by yjz468 @ 2024-04-25 21:17:20


```cpp #include <iostream> #include <unordered_map> #include <vector> #include <algorithm> using namespace std; int main() { int n; cin >> n; unordered_map<int, int> counts; vector<int> nums(n); for (int i = 0; i < n; ++i) { cin >> nums[i]; counts[nums[i]]++; } int maxTotal = 0; for (const auto& kvp : counts) { int count = kvp.second; for (int i = 1; i <= count; ++i) { int total = 0; for (const auto& kvp : counts) { total += min(kvp.second / i, count) * i; } maxTotal = max(maxTotal, total); } } for (int i = 1; i <= maxTotal; ++i) { int total = 0; for (const auto& kvp : counts) { total += min(kvp.second / i, kvp.second) * i; } cout << total << " "; } return 0; } ```
by yjz468 @ 2024-04-25 21:18:15


@[yjz468](/user/937773) 那我该怎么该? ~~我不是求最大公约数的倍数~~
by xpg007 @ 2024-04-25 21:19:03


@[xpg007](/user/1024680) 额额额
by yjz468 @ 2024-04-25 21:20:59


@[yjz468](/user/937773) 一,质疑你用chat了 二,循环两层都是i 三,依然超时O(n^2) 四,变量都重名了
by xpg007 @ 2024-04-25 21:24:21


@[xpg007](/user/1024680) 明显chatGPT回答
by DFs_YYDS @ 2024-04-25 21:25:59


@[DFs_YYDS](/user/1119406) 你来调一下呗,QwQ
by xpg007 @ 2024-04-25 21:27:58


@[yjz468](/user/937773) 人家真心发问了,你就这样糊弄人家?
by __xsy2013__ @ 2024-04-25 21:29:57


![](https://cdn.luogu.com.cn/upload/usericon/1119406.png)
by yjz468 @ 2024-04-25 21:30:07


@[xpg007](/user/1024680) 对不起,我要备战明日比赛
by __xsy2013__ @ 2024-04-25 21:30:11


| 下一页