
解析:
显然最大的数肯定放到第一个,然后对于之后每一个数,贪心考虑让其最大公约数最大即可。
时间复杂度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;
- }
-
相关阅读:
wow-string-list文件说明
微信小程序(三)--- 视图与逻辑详解(导航相关,WXS脚本,页面事件,生命周期,自定义编译模式等)
【广州华锐互动】VR建筑安全培训体验为建筑行业人才培养提供有力支持
如何进行列间排序
Leetcode 877. 石子游戏
广州蓝景分享—前端开发JavaScript中的Array对象与其他数组
IOC理解
接口的详解
小程序的开发之路②
支持模板的C++循环队列设计实现与优化
-
原文地址:https://blog.csdn.net/JungleZRD/article/details/134266661