码迷,mamicode.com
首页 > 其他好文 > 详细

第六周 10.4-10.10

时间:2015-10-04 11:04:07      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

10.4

CF 582A GCD Table

贪心取最大。熟悉set大法。

技术分享
 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <algorithm>
 5 #include <vector>
 6 #include <set>
 7 using namespace std;
 8 multiset<int> S;
 9 multiset<int>::iterator it;
10 vector<int> ans;
11 
12 int gcd(int a,int b)
13 {
14     return a%b?gcd(b,a%b):b;
15 }
16 
17 int main(void)
18 {
19     S.clear();
20     int n; scanf("%d",&n);
21     for(int i=0;i<n*n;i++)
22     {
23         int x;
24         scanf("%d",&x);
25         S.insert(x);
26     }
27     while(!S.empty())
28     {
29         it=S.end(); it--;
30         int cur=*it;
31         S.erase(it);
32         for(int i=0;i<ans.size();i++)
33         {
34             int t=gcd(ans[i],cur);
35             for(int i=0;i<2;i++)
36             {
37                 it=S.find(t);
38                 S.erase(it);
39             }
40         }
41         ans.push_back(cur);
42     }
43     for(int i=0;i<ans.size();i++) printf("%d ",ans[i]);
44     puts("");
45     return 0;
46 }
Aguin

 

第六周 10.4-10.10

标签:

原文地址:http://www.cnblogs.com/Aguin/p/4854239.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!