*[topcoder]LCMSetEasy
http://community.topcoder.com/stat?c=problem_statement&pm=13040
DFS集合全排列+LCM和GCD。但事实上,有更简单的算法,列在下面,就是观察到不能整除x的对我们无效。
#include <vector>
#include <iostream>
using namespace std; class LCMSetEasy {
public:
string include(vector <int> S, int x) {
vector<int> vec;
if (includeRe(S, x, 0, vec))
return "Possible";
else
return "Impossible";
} bool includeRe(const vector<int> &S, int x, int i, vector<int> &vec) {
if (i == S.size()) {
int r = lcm(vec);
if (r == x)
return true;
return false;
}
vec.push_back(S[i]);
bool res = includeRe(S, x, i + 1,vec);
vec.pop_back();
if (res)
return true;
res = includeRe(S, x, i + 1,vec);
return res;
} int lcm(vector<int> vec) {
if (vec.size() == 0)
return 1;
int tmp = vec[0];
for (int i = 1; i < vec.size(); i++) {
tmp = lcm(tmp, vec[i]);
}
return tmp;
} int lcm(int a, int b) {
int c = gcd(a, b);
return a * b /c;
} int gcd(int a, int b) {
if (a % b == 0)
return b;
int tmp = a % b;
return gcd(b, tmp);
}
};
string include(vector <int> S, int x) {
int r = 1;
for (int i = 0; i < S.size(); i++) {
if (x % S[i] == 0) {
r = lcm(r, S[i]);
}
}
if (r == x)
return "Possible";
else
return "Impossible";
}
*[topcoder]LCMSetEasy的更多相关文章
- TopCoder kawigiEdit插件配置
kawigiEdit插件可以提高 TopCoder编译,提交效率,可以管理保存每次SRM的代码. kawigiEdit下载地址:http://code.google.com/p/kawigiedit/ ...
- 记第一次TopCoder, 练习SRM 583 div2 250
今天第一次做topcoder,没有比赛,所以找的最新一期的SRM练习,做了第一道题. 题目大意是说 给一个数字字符串,任意交换两位,使数字变为最小,不能有前导0. 看到题目以后,先想到的找规律,发现要 ...
- TopCoder比赛总结表
TopCoder 250 500 ...
- Topcoder几例C++字符串应用
本文写于9月初,是利用Topcoder准备应聘时的机试环节临时补习的C++的一部分内容.签约之后,没有再进行练习,此文暂告一段落. 换句话说,就是本文太监了,一直做草稿看着别扭,删掉又觉得可惜,索性发 ...
- TopCoder
在TopCoder下载好luncher,网址:https://www.topcoder.com/community/competitive%20programming/ 选择launch web ar ...
- TopCoder SRM 596 DIV 1 250
body { font-family: Monospaced; font-size: 12pt } pre { font-family: Monospaced; font-size: 12pt } P ...
- 求拓扑排序的数量,例题 topcoder srm 654 div2 500
周赛时遇到的一道比较有意思的题目: Problem Statement There are N rooms in Maki's new house. The rooms are number ...
- TopCoder SRM 590
第一次做TC,不太习惯,各种调试,只做了一题...... Problem Statement Fox Ciel is going to play Gomoku with her friend ...
- Topcoder Arena插件配置和训练指南
一. Arena插件配置 1. 下载Arena 指针:http://community.topcoder.com/tc?module=MyHome 左边Competitions->Algorit ...
随机推荐
- sql server 中更改默认实例
因为安装了多个版本的sql server,会造成同时存在多个实例的情况. 1.关闭旧版本的sql server实例,并设置为手动启动 2.按下图步骤操作,把tcp端口设置为1433 3.重启sql s ...
- IOS_修改项目模板
1. /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File\ Templates/Source/Cocoa\ ...
- 如何学好PHP
1.明确自己的学习目标和大的方向,选择并锁定一门语言,按照自己的学习方向努力学习.认真研究. 2.学会配置PHP的开发环境,选择一种适合自己的开发工具. 3.基础扎实,多阅读一些基础教材,了解基本的编 ...
- Vim一些实用的用法
打开多个文件: 1.vim还没有启动的时候:在终端里输入 vim file1 file2 ... filen便可以打开所有想要打开的文件2.vim已经启动输入:open file可以再打开一个文件,并 ...
- 【PHP】phpcms 关联连接修复
function _keylinks($txt, $replacenum = '',$link_mode = 1) { $keywords = $this->data['keywords']; ...
- mercurial(hg)使用
# 版本管理软件的比较 svn 每个目录下建一个.svn目录实在是不爽. git 分支管理非常方便,但没感觉有什么用,主要还是在修改前提交一次代码, 等后悔时再回来,没什么其他的目的.关键是中文乱码问 ...
- 22 高级SQL特性
1.约束 为正确地进行关系数据库设计,需要一种方法来保证只在表中插入合法的数据.例如,如果Orders表存储订单信息,OrderItems表存储订单详细内容,应该保证Orderitems中引用的任何订 ...
- 如何正确理解深度学习(Deep Learning)的概念
现在深度学习在机器学习领域是一个很热的概念,不过经过各种媒体的转载播报,这个概念也逐渐变得有些神话的感觉:例如,人们可能认为,深度学习是一种能够模拟出人脑的神经结构的机器学习方式,从而能够让计算机具有 ...
- Java HTML页面抓取实例
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- ios里的UIActionSheet的使用
class ViewController: UIViewController,UIActionSheetDelegate{ @IBOutlet weak var label1: UILabel! @I ...