Codeforces 583 DIV2 GCD Table 贪心
2015-10-04 19:48
603 查看
原题链接:http://codeforces.com/problemset/problem/583/C
题意:
大概就是给你个gcd表,让你还原整个序列。题解:
由$GCD(a,a)=a$,我们知道最大的那个数一定是原序列中的数,然后每次从集合中选取最大的数出来,和已经构造好的序列进行gcd,删除gcd出来的值即可。代码:
#include<iostream> #include<cstring> #include<map> #include<cstdio> #include<set> #include<algorithm> #include<vector> using namespace std; int gcd(int a, int b){ return b==0?a:gcd(b,a%b); } map<int,int> ma; vector<int> ans; int n; int main() { cin.sync_with_stdio(false); cin >> n; for (int i = 0; i < n * n; i++) { int x; cin >> x; ma[-x]++; } if (n == 1) { cout << -ma.begin()->first << endl; return 0; } auto it=ma.begin(); while(it!=ma.end()) { while (it != ma.end() && it->second == 0)it++; if(it==ma.end())break; it->second--; for (auto c:ans)ma[-gcd(c, -it->first)] -= 2; ans.push_back(-it->first); } for (auto c:ans) cout << c << " "; cout << endl; return 0; }
相关文章推荐
- webform C# log4net不起作用 5种 原因
- ASC32题解
- 向日葵sunlogin配置
- 向日葵sunlogin配置
- 条款3:尽可能的使用const
- C#——.net背景和第一个C#程序
- 两年,从纯小白到腾讯阿里,应届非计算机毕业生的2014互联网求职之路
- full extent
- Codeforces 583 DIV2 Robot's Task 贪心
- 正则表达式
- Java中接口的清晰+形象理解
- 关于java中流的使用--文件以及socket
- 第四周学习总结
- Servlet的学习之Request请求对象(1)
- C++学习笔记5——类的继承
- 2014广州站 B - The E-pang Palace(暴力)
- Invalidate()函数
- Android开发最近用到的开源库
- [Android]Android权限列表
- 信息安全系统设计基础第三周学习总结