
解析:
显然最大的数肯定放到第一个,然后对于之后每一个数,贪心考虑让其最大公约数最大即可。
时间复杂度log(n^2logn)
- #include
- using namespace std;
- #define int long long
- const int N=2e5+5;
- int n,a[N],vis[N];
- int gcd(int a,int b){
- return b?gcd(b,a%b):a;
- }
- void solve(){
- scanf("%lld",&n);
- memset(vis,0,sizeof vis);
- for(int i=1;i<=n;i++){
- scanf("%lld",&a[i]);
- }
- sort(a+1,a+n+1);
- printf("%lld ",a[n]);
- int p=a[n];
- for(int i=1;i
- int mx,id=-1;
- for(int j=1;j
- if(!vis[j]&&(id==-1||gcd(a[j],p)>mx)){
- id=j;
- mx=gcd(a[j],p);
- }
- }
- printf("%lld ",a[id]);
- vis[id]=1;
- p=gcd(p,a[id]);
- }
- printf("\n");
- }
- signed main(){
- int t=1;
- scanf("%lld",&t);
- while(t--) solve();
- return 0;
- }
-
相关阅读:
ARM Linux DIY(十三)Qt5 移植
详解Windows渗透测试工具Mimikatz的内核驱动
ACTF 2022圆满落幕,0ops战队二连冠!!
一天涨 23k Star 的开源项目「GitHub 热点速览」
C++ 线段树的实现总结
混淆矩阵——AI产品经理给我使劲看
你是怎么看待程序员不写注释这一事件的呢?
基础排序算法
Ubuntu18.04安装QGC报错 `GLIBC_2.29‘ not found
粗读DS-TransUNet: Dual Swin Transformer U-Net for Medical Image Segmentation
-
原文地址:https://blog.csdn.net/JungleZRD/article/details/134266661