【题目链接】

点击打开链接

【算法】

G中最大的数一定也是a中最大的数。
          G中次大的数一定也是a中次大的数。

第三、第四可能是由最大和次大的gcd产生的

那么就不难想到下面的算法:

1. 令p为G中最大的数。在G中删除p,a中加入p。
         2 . 对于a中的所有其他数(设为q),在G中删除2个gcd(p, q)。

3. 若G为空则结束;否则回到(1)。

【代码】

#include<bits/stdc++.h>
using namespace std;
#define MAXN 500 int i,N,x,k;
map<int,int> M;
int a[MAXN*MAXN];
vector<int> res; template <typename T> inline void read(T &x) {
int f = ; x = ;
char c = getchar();
for (; !isdigit(c); c = getchar()) { if (c == '-') f = -f; }
for (; isdigit(c); c = getchar()) x = (x << ) + (x << ) + c - '';
x *= f;
}
template <typename T> inline void write(T x) {
if (x < ) { putchar('-'); x = -x; }
if (x > ) write(x/);
putchar(x%+'');
}
template <typename T> inline void writeln(T x) {
write(x);
puts("");
} inline int gcd(int x,int y) { return !y ? x : gcd(y,x%y); } int main() { read(N);
for (i = ; i <= N * N; i++) {
read(a[i]);
M[a[i]]++;
}
sort(a+,a+N*N+);
for (i = N * N; i >= ; i--) {
if (!M[a[i]]) continue;
--M[a[i]];
for (k = ; k < res.size(); k++) M[gcd(a[i],res[k])] -= ;
res.push_back(a[i]);
}
for (i = ; i < res.size(); i++) {
write(res[i]);
if (i < res.size() - ) putchar(' ');
}
puts(""); return ;
}

【Codeforces 582A】 GCD Table的更多相关文章

  1. 【Codeforces 582A】GCD Table

    [链接] 我是链接,点我呀:) [题意] 给你一个数组A[]经过a[i][j] = gcd(A[i],A[j])的规则生成的二维数组 让你求出原数组A [题解] 我们假设原数组是A 然后让A数组满足A ...

  2. 【CF#338D】GCD Table

    [题目描述] 有一张N,M<=10^12的表格,i行j列的元素是gcd(i,j) 读入一个长度不超过10^4,元素不超过10^12的序列a[1..k],问是否在某一行中出现过 [题解] 要保证g ...

  3. 【codeforces 415D】Mashmokh and ACM(普通dp)

    [codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ...

  4. 【codeforces 798C】Mike and gcd problem

    [题目链接]:http://codeforces.com/contest/798/problem/C [题意] 给你n个数字; 要求你进行若干次操作; 每次操作对第i和第i+1个位置的数字进行; 将 ...

  5. 【35.29%】【codeforces 557C】Arthur and Table

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  6. 【84.62%】【codeforces 552A】Vanya and Table

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  7. 【Codeforces 664A】 Complicated GCD

    [题目链接] 点击打开链接 [算法] gcd(a,a+1) = 1 所以当a = b时,答案为a,否则为1 [代码] #include<bits/stdc++.h> using names ...

  8. 【codeforces 509A】Maximum in Table

    [题目链接]:http://codeforces.com/contest/509/problem/A [题意] 给你一个递推式f[i][j] = f[i-1][j]+f[i][j-1]; 让你求f[i ...

  9. 【codeforces 803C】Maximal GCD

    [题目链接]:http://codeforces.com/contest/803/problem/C [题意] 给你一个数字n;一个数字k; 让你找一个长度为k的序列; 要求这个长度为k的序列的所有数 ...

随机推荐

  1. Windows 10安装IntelliJ IDEA时快捷键冲突设置

    Windows的快捷键的非常多,而且个性化软件获得这些权限的也很多,所以没有最终的方法,只能不断的发现和尝试. 下面是收集的一些教程,或许能在这里找到灵感: 切记:不建议优先修改IDEA的快捷键,应该 ...

  2. 深入理解iPhone数据持久化(手把手教你iphone开发 – 基础篇)

    在所有的移动开发平台数据持久化都是很重要的部分:在j2me中是rms或保存在应用程序的目录中,在symbian中可以保存在相应的磁盘目录中和数据库中.symbian中因为权限认证的原因,在3rd上大多 ...

  3. RMA Sales Order – Stuck with “Awaiting Return Disposition”

    RMA Sales Order – Stuck with “Awaiting Return Disposition” Action : (Prod) ð  Login to Unix ð  su – ...

  4. Activiti 5.17 实体对象与类和数据库表的映射

    一.Activiti 5.17 mybatis的mapping文件声明映射的实体对象关系. <configuration><settings><settingname=& ...

  5. python内存诊断

    1.计算内存地址: str1 = 'shn' print id(str1) 2.计算内存大小,返回字节数 str1 = 'td' print sys.getsizeof(str1) 3.

  6. GBDT调参

    gbm算法流程图: gbdt 参数:参考scikit-learn The overall parameters can be divided into 3 categories: Tree-Speci ...

  7. PHP中extract()函数的妙用

    看cakephp 2.3.8的源代码,很多地方都用 到 compact('name', 'response'); extract($status, EXTR_OVERWRITE); 这样的代码.com ...

  8. 使用fiddler进行手机数据抓取

    使用fiddler进行手机数据抓取 学习了:https://blog.csdn.net/gld824125233/article/details/52588275 https://blog.csdn. ...

  9. UVA 1482 - Playing With Stones(SG打表规律)

    UVA 1482 - Playing With Stones 题目链接 题意:给定n堆石头,每次选一堆取至少一个.不超过一半的石子,最后不能取的输,问是否先手必胜 思路:数值非常大.无法直接递推sg函 ...

  10. GridView的经常使用属性

    1.android:numColumns="auto_fit"   //GridView的列数设置为自己主动 2.android:columnWidth="90dp &q ...