gpt4 book ai didi

c++ - 如何使这个算法更快?

转载 作者:搜寻专家 更新时间:2023-10-31 00:34:54 24 4
gpt4 key购买 nike

<分区>

我正在尝试提出以下算法:

输入是无符号整数。输出是无序的无符号整数对数组的大小,当它们相乘时,得到一个小于或等于输入的数。

我有一个简单的实现在工作,但它对我的目的来说太慢了(完成。O(n^2),如果我错了请纠正我)。我的问题是:如何让它更快?

#include <iostream>

using namespace std;

bool notInYet(int t[][1], int mi, int ma, int m) {
bool val = true;
for(int i = 0; i < m; i++)
if(t[i][0] == mi && t[i][1] == ma)
val = false;
return val;
}

int main() {
int n, m;
int t[100000][1];
cin >> n;
m = 0;
for(int i = 1; i <= n; i++) {
for(int j = 1; j*i <= n && j <= i; j++) {
if(notInYet(t, j, i, m)) {
t[m][0] = j;
t[m][1] = i;
//cout << "t[" << m << "] = (" << t[m][0] << ", " << t[m][1] << ")" << endl;
m++;
}
}
}
cout << m << endl;
return 0;
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com