淘客网站是怎么做的,wordpress的wiki主题,网站ftp空间,香格里拉网站建设发现规律很重要#xff0c;推荐这篇文章 讲解——————看这位大佬的讲解#xff0c;很清楚
#xff08;在文末想和聪明的你讨论一个问题#xff0c;盼望您的讨论与解答#xff09;
#include iostream
#include vector
#include algorithm推荐这篇文章 讲解——————看这位大佬的讲解很清楚
在文末想和聪明的你讨论一个问题盼望您的讨论与解答
#include iostream
#include vector
#include algorithm
#include iomanip
#includecmath
#includebits/stdc.h
using namespace std;
const int N 2e5 10;
int v[N];
vectorintq;
int ksm(int a,int b)
{int ans1;while(b){if(b1)ansans*a;aa*a;b1;}return ans;
}
int main()
{int n;cinn;for(int i1;in;i){int j;cinj;v[j];}for(int i1e5;i1;i--){for(int ji;j1e5;ji){if(v[j]){for(int t1;tv[j];t){q.push_back(j);if(q.size()3)break;}}if(q.size()3){for(int k0;k2;k){coutq[k] ;}return 0;}}q.clear();}}学习完这道题后我在想既然可以找出1e5数列中的任意三个数字的最大gcd最小公倍数
那么有没有可能在同样为的时间下找出1e5数列中的任意三个数字的最小lcm最大公因数只需对称着写 如下
#include iostream
#include vector
#include algorithm
#include cmath
using namespace std;const int N 2e5 10;
int v[N];int main()
{int n;cin n;for (int i 1; i n; i){int x;cin x;v[x];}vectorint best_ans;for (int i 1; i 1e5; i){vectorint q;for (int j 1; j sqrt(i); j){if (i % j 0){// 收集小因子j最多3个if (v[j] 0){for (int k 1; k v[j] q.size() 3; k){q.push_back(j);}}// 收集大因子i/j最多3个if (j * j ! i v[i/j] 0){for (int k 1; k v[i/j] q.size() 3; k){q.push_back(i/j);}}if (q.size() 3){sort(q.begin(), q.end());if (best_ans.empty() || q best_ans){best_ans q;}break;}}}}for (int t 0; t 3; t){cout best_ans[t] ;}return 0;
}
BUT在一个数列里是否存在三个有公因数的组合他们的最小公倍数大于三个互质数的最小公倍数来使得我的code错误但是我找不到这样的组合