codeforces#505--B Weakened Common Divisor】的更多相关文章

题意:给你n组,每组两个数字,要你给出一个数,要求这个是每一组其中一个数的因数(非1),给出任意满足的一个数,不存在则输出-1. 思路1:刚开始乱七八糟暴力了一下果断超时,然后想到了把每组两个数相乘,然后求每组的GCD,那么这个GCD就是因数的乘积(如果GCD==1就输出-1).然后打个2e5的素筛表,然后找到GCD的一个素数因数.做到这里好像没问题了,然而,分分钟会被hack,问题出在哪里了?显然啊,打素数表只用2e5的范围,但是因数还包括自己本身啊!所以一旦GCD大于2e5我们就找不到答案了…
B. Weakened Common Divisor time limit per test 1.5 seconds memory limit per test 256 megabytes input standard input output standard output During the research on properties of the greatest common divisor (GCD) of a set of numbers, Ildar, a famous mat…
Weakened Common Divisor time limit per test 1.5 seconds memory limit per test 256 megabytes input standard input output standard output During the research on properties of the greatest common divisor (GCD) of a set of numbers, Ildar, a famous mathem…
题意:给你若干个数对,每个数对中可以选择一个个元素,问是否存在一种选择,使得这些数的GCD大于1? 思路:可以把每个数对的元素乘起来,然后求gcd,这样可以直接把所有元素中可能的GCD求出来,从小到大枚举即可,需要特判一下第一个元素是素数的情况. #include<cstdio> #include<algorithm> #include<cstring> #include<iostream> #include<map> #include<s…
[链接] 我是链接,点我呀:) [题意] 给你n个数对(ai,bi). 让你求一个大于1的数字x 使得对于任意的i x|a[i] 或者 x|b[i] [题解] 求出第一个数对的两个数他们有哪些质因子. 显然用这些质因子去试2..n就可以了. 看哪个可以满足 就输出对应的就可以了. (一开始我求出这个数的所有因子(TLE了)..其实没有必要...因为假设y是x的倍数..然后y满足的话,显然x也能满足要求..所以只要用质因子搞就行了. [代码] #include <bits/stdc++.h> #…
http://codeforces.com/problemset/problem/1025/B 大意:n对数对(ai,bi),求任意一个数满足是所有数对中至少一个数的因子(大于1) 分析: 首先求所有数对的lcm,把所有数的素因子提出来 求所有lcm的gcd,这样做求出数对之间的公共素因子gcd 注意,公共素因子可能在某一组数对中状态为某一部分是ai的素因子而剩下的一部分是bi的素因子,这种情况导致gcd既不是ai的因子又不是bi的因子,因此必须只保留下aibi公共的素因子,剔除非公共素因子,故…
题意: 给你n对数,求一个数,可以让他整除每一对数的其中一个 思路: 枚举第一对数的质因数,然后暴力 代码: #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<cstring> #include<string> #include<stack> #include<queue> #include<d…
#include<cstdio> #include<string> #include<cstdlib> #include<cmath> #include<iostream> #include<cstring> #include<set> #include<queue> #include<algorithm> #include<vector> #include<map> #in…
思路: 首先选取任意一对数(a, b),分别将a,b进行因子分解得到两个因子集合然后取并集(无需计算所有可能的因子,只需得到不同的质因子即可),之后再暴力一一枚举该集合中的元素是否满足条件. 时间复杂度:O(sqrt(amax) + n * log(amax)). 实现: #include <bits/stdc++.h> using namespace std; ; int a[MAXN], b[MAXN]; set<int> factor(int x) { set<int&…
Content 定义 \(n\) 个数对 \((a_1,b_1),(a_2,b_2),(a_3,b_3),...,(a_n,b_n)\) 的 \(\text{WCD}\) 为能够整除每个数对中至少一个数的 \(>1\) 的整数.现在,给出 \(n\) 个数对,请找出它们的 \(\text{WCD}\),或者这 \(n\) 个数对没有符合要求的 \(\text{WCD}\). 数据范围:\(1\leqslant n\leqslant 1.5\times 10^5,2\leqslant a_i,b_…
题目描述 There is an array of length n, containing only positive numbers.Now you can add all numbers by 1 many times. Please find out the minimum times you need to perform to obtain an array whose greatest common divisor(gcd) is larger than 1 or state th…
Problem Introduction The greatest common divisor \(GCD(a, b)\) of two non-negative integers \(a\) and \(b\) (which are not both equal to 0) is the greatest integer \(d\) that divides both \(a\) and \(b\). Problem Description Task.Given two integer \(…
One efficient way to compute the GCD of two numbers is to use Euclid's algorithm, which states the following: GCD(A, B) = GCD(B, A % B) GCD(A, 0) = Absolute value of A In other words, if you repeatedly mod A by B and then swap the two values, eventua…
定义: 最大公约数(英语:greatest common divisor,gcd).是数学词汇,指能够整除多个整数的最大正整数.而多个整数不能都为零.例如8和12的最大公因数为4. 最小公倍数是数论中的一个概念.若有一个数\[X\],可以被另外两个数\[A\].\[B\]整除,且\[X\]大于(或等于)\[A\]和\[B\],则\[X\]X为\[A\]和\[B\]的公倍数.\[A\]和\[B\]的公倍数有无限个,而所有的公倍数中,最小的公倍数就叫做最小公倍数.两个整数公有的倍数称为它们的公倍数,…
描述 Given two numbers, number a and number b. Find the greatest common divisor of the given two numbers. In mathematics, the greatest common divisor (gcd) of two or more integers, which are not all zero, is the largest positive integer that divides ea…
Greatest Greatest Common Divisor Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5207 Description 在数组a中找出两个数ai,aj(i≠j),使得两者的最大公约数取到最大值. Input 多组测试数据.第一行一个数字T,表示数据组数.对于每组数据,第一行是一个数n,表示数组中元素个数,接下来一行有n个数,a1到an.1≤T≤…
1071. 字符串的最大公因子 1071. Greatest Common Divisor of Strings 题目描述 对于字符串 S 和 T,只有在 S = T + ... + T(T 与自身连接 1 次或多次)时,我们才认定 "T 能除尽 S". 返回字符串 X,要求满足 X 能除尽 str1 且 X 能除尽 str2. 每日一算法2019/6/17Day 45LeetCode1071. Greatest Common Divisor of Strings 示例 1: 输入:s…
problem 1071. Greatest Common Divisor of Strings solution class Solution { public: string gcdOfStrings(string str1, string str2) { return (str1+str2==str2+str1) ? (str1.substr(, gcd(str1.size(), str2.size()))) : ""; } }; 参考 1. Leetcode_easy_1071…
Greatest Common Divisor 题目链接 题目描述 There is an array of length n, containing only positive numbers. Now you can add all numbers by 1 many times. Please find out the minimum times you need to perform to obtain an array whose greatest common divisor(gcd…
lc1071 Greatest Common Divisor of Strings 找两个字符串的最长公共子串 假设:str1.length > str2.length 因为是公共子串,所以str2一定可以和str1前面一部分匹配上,否则不存在公共子串. 所以我们比较str2和str1的0~str2.length()-1部分, 若不同,则直接返回””,不存在公共子串. 若相同,继续比较str2和str1的剩下部分,这里就是递归了,调用原函数gcd(str2, str1.substring(str…
UPC备战省赛组队训练赛第十七场 with zyd,mxl G: Greatest Common Divisor 题目描述 There is an array of length n, containing only positive numbers. Now you can add all numbers by many times. Please find or state that it is impossible. You should notice that , you need to…
题目链接 让你找一个数,使得这个数,可以被每个二元组的两个数中的一个数整除. 先将第一个二元组的两个数质因数分解一下,分解的质数加入set中,然后,对剩下的n-1个二元组进行遍历,每次遍历到的二元组对s中的质数进行判断是否能整除.如果某个质数可以被n-1个二元组整除(两个数中的一个). 好浅显的思路,,,可是我就是没想到,,,哭辽,xyqnb mdhnb fyznb %大佬 #include<bits/stdc++.h> #define LL long long #define fi firs…
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址:https://github.com/strengthen/LeetCode➤原文地址:https://www.cnblogs.com/strengthen/p/10961892.html ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章…
一 暴力枚举法 原理:试图寻找一个合适的整数i,看看这个整数能否被两个整形参数numberA和numberB同时整除.这个整数i从2开始循环累加,一直累加到numberA和numberB中较小参数的一半为止.循环结束后,上一次寻找到的能够被两整数整除的最大i值,就是两数的最大公约数. int getGreatestCommonDivisor(int numberA, int numberB) { ||numberB < ) { ; } || numberB <= ) { ; } int max…
题意:给出一个字符串,可以向该字符串的任意位置插入一个字母使其变成回文串 因为字符串的长度小于10,枚举插入的字母,和要插入的位置,再判断是否已经满足回文串 #include<iostream> #include<cstdio> #include<cstring> #include <cmath> #include<stack> #include<vector> #include<map> #include<set&…
欧几里得算法求最大公约数 If A = 0 then GCD(A,B)=B, since the GCD(0,B)=B, and we can stop. If B = 0 then GCD(A,B)=A, since the GCD(A,0)=A, and we can stop. Write A in quotient remainder form (A = B⋅Q + R) Find GCD(B,R) using the Euclidean Algorithm since GCD(A,B)…
两个数的最大公约数.一个典型的解决方案是欧几里德,叫欧几里德算法. 原理:(m,n)代表m和nGCD,和m>n.然后,(m,n)=(n,m%n)=.....直到余数为0. 码如下面: public class GCD { public static int gcd(int m, int n){ if(m*n<0){ return -1; } if(n==0){ return m; } if(m==0){ return n; } //辗转相除法 if(m<n){ int temp=m; m…
#include<stdio.h> #include<string.h> #include<math.h> ]; ]; int main() { int sb; scanf("%d", &sb); int u; ; u <= sb; u++) { int n, i; ; scanf("%d", &n); memset(flag, , sizeof(flag)); ; i <= n; i++) { sca…
function gcd(a, b) return a else return gcd(b, a mod b)…
题目链接: hdu:http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=153598 bc(中文):http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=577&pid=1002 题解: 1.对于每个输入,枚举它的因子,并统计,结果存在mmp数组中,最后再倒过来扫一遍mmp数组,其中第一个mmp[i]>=2的,就是答案. 时间复杂度:O(…