Hrbustoj 2266 Legendary Weights(辗转相除求最大公约数)
题意:这个题目的意思是给出一些砝码,问我们能不能根据这些砝码称量出任意重量的物品,最大公约数并不难求,难的在于如何建立这个模型。
思路:根据数论的基础知识,两个数a,b的最大公约数是a*x + b*y线性方程的最小正值(证明从略),所以很同意接受这个现实,当这些数的gcd为1的时候,线性方程可以表示(1,+OO)的任意整数,所以肯定可以。但这个题有一个坑点,那就是当最大公约数为2的时候也是可以的,加入物品重m,若m不可以被恰好表示出来,m总可以被控制在m-1和m+1的范围内,m是整数,所以可以确定m的值。综上所述,最大公约数为1和2的时候满足条件。
#include<iostream>
using namespace std;
int gcd(int a,int b){
if(b == ) return a;
return gcd(b,a % b);
}
int main(){
int n,a[];
while(cin>>n){
for(int i = ;i < n;i++) cin>>a[i];
bool flag = false;
if(n == && (a[]== || a[] == ))flag = true;
else {
int tmp = a[];
for(int i = ;i < n;i++){
tmp = gcd(tmp,a[i]);
}
if(tmp == || tmp == ) flag = true;
}
if(flag) cout<<"YES\n";
else cout<<"NO\n";
}
return ;
}
Hrbustoj 2266 Legendary Weights(辗转相除求最大公约数)的更多相关文章
- 辗转相除 求最大公约数!or  最小公倍数
		
求最大公约数和最小公倍数的经典算法--辗转相除法描述如下: 若要求a,b两数的最大公约数和最小公倍数,令a为a.b中较大数,b为较小数,算法进一步流程: while(b不为0) { temp=a%b: ...
 - C语言  ·  求最大公约数
		
算法提高 求最大公约数 时间限制:1.0s 内存限制:512.0MB 编写一函数gcd,求两个正整数的最大公约数. 样例输入: 5 15样例输出:5 样例输入: 7 2样例输出:1 ...
 - [算法]求满足要求的进制(辗转相除(欧几里得算法),求最大公约数gcd)
		
题目 3在十进制下满足若各位和能被3整除,则该数能被3整除. 5在十六进制下也满足此规律. 给定数字k,求多少进制(1e18进制范围内)下能满足此规律,找出一个即可,无则输出-1. 题解 写写画画能找 ...
 - [Luogu1891]疯狂LCM[辗转相减法]
		
题意 多组询问,每次给定 \(n\) ,求:\(\sum_{i=1}^nlcm(i,n)\) . \(\rm T \leq 3\times 10^4\ ,n \leq 10^6\). 分析 推式子: ...
 - Alice and Bob  要用到辗转相减
		
Alice and BobTime Limit: 1 Sec Memory Limit: 64 MBSubmit: 255 Solved: 43 Description Alice is a be ...
 - bzoj 2852: 强大的区间 辗转相除
		
2852: 强大的区间 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 45 Solved: 12[Submit][Status][Discuss] D ...
 - (中等) CF 585C Alice, Bob, Oranges and Apples,矩阵+辗转相除。
		
Alice and Bob decided to eat some fruit. In the kitchen they found a large bag of oranges and apples ...
 - BZOJ.4031.[HEOI2015]小Z的房间(Matrix Tree定理 辗转相除)
		
题目链接 辗转相除解行列式的具体实现? 行列式的基本性质. //864kb 64ms //裸的Matrix Tree定理.练习一下用辗转相除解行列式.(因为模数不是质数,所以不能直接乘逆元来高斯消元. ...
 - Luogu4111 [HEOI2015]小Z的房间 (矩阵树,辗转相除高斯消元)
		
除法不能用于同余系,要辗转相除.注意不能加入柱子到矩阵. #include <iostream> #include <cstdio> #include <cstring& ...
 
随机推荐
- SharePoint 2013 InfoPath 无法保存下列表单
			
转载自:http://www.cnblogs.com/jianyus/p/3470121.html 在使用InfoPath发布表单,发布到SharePoint服务器报错,如下介绍: 环境:Window ...
 - k近邻模型
			
k近邻模型主要包含三个基本要素:距离度量.k值的选择.分类决策规则 模型: k近邻法中,当训练集.距离度量.k值及分类决策规则确定后,对于一个新的输入实例,它所属的类唯一确定,这相当于根据上述要素将特 ...
 - Raft详解分析
			
1.投票部分 一个candidate向所有其他的server发送RequesetVote RPC(具体格式见论文),每次从RPC的reply中累加voteCount,如果超过一半,这个candidat ...
 - 工作线程基类TaskSvc
			
工作线程基类TaskSvc 前端时间用ACE写代码,发ACE_Task确实好用.不但能提供数量一定的线程,还能够让这些继承的线程函数自由访问子类的private和protected变量.此外,ACE_ ...
 - 说说final关键字(好像有干货)
			
在java开发过程中,final是大家常用的关键字,无非就是用来修饰类,方法和变量,来表名类不能被继承,方法不会被覆盖,变量不能被改变,悄悄的说一句,private方法也隐式的final.通过一段时间 ...
 - windows下更新python报错permission denied
			
注意退出所有python进程,可能是在使用中导致权限不足以删除
 - 算法入门(C++)
			
iostream,这个头文件里有很多常用的函数,比如swap交换两个变量的值,max求两个值的最大值等. cstdio头文件,这个头文件里包含C风格的输入输出.如果你之前学习过C++语言应该知道cin ...
 - 曾经的ps的图片
 - leetcode70
			
You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...
 - hdu_4714_Tree2cycle(树形DP)
			
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4714 题意:给你N个点N-1条边,形成一个树,让你拆树,并连接成一个环,每拆一次,连接一次,消耗1,问 ...