博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 5615 Jam's math problem(十字相乘判定)
阅读量:4137 次
发布时间:2019-05-25

本文共 1828 字,大约阅读时间需要 6 分钟。

Jam's math problem

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 990 Accepted Submission(s): 474
Problem Description
Jam has a math problem. He just learned factorization.
He is trying to factorize
ax2+bx+c into the form of
pqx2+(qk+mp)x+km=(px+k)(qx+m) .
He could only solve the problem in which p,q,m,k are positive numbers.
Please help him determine whether the expression could be factorized with p,q,m,k being postive.
Input
The first line is a number
T , means there are
T(1T100) cases
Each case has one line,the line has
3 numbers
a,b,c(1a,b,c100000000)
Output
You should output the "YES" or "NO".
Sample Input
21 6 51 6 4
Sample Output
YESNO   
Hint
The first case turn $x^2+6*x+5$ into $(x+1)(x+5)$
Source
/*思路:题目意思是判定 ax2+bx+c能不能分解成 pqx2+(qk+mp)x+km=(px+k)(qx+m),其中参数都是正整数  即十字相乘, 刚看到这个题目第一感觉就是把复杂度降下来,枚举p,k就行,两重循环,刚开始误以为p枚举1到sqrt(a)就行 ,这样是错误的,因为p,q代表不同角色,可能是大小反过来,所以枚举的 时候i若能被a整除,则另一个p是a/i这样才对。参考网上思路1: 为了降低复杂度,将2个循环先分开处理一下,将不能整除的先去掉,这样就行 参考网上思路2:对于形如ax2+bx+c的多项式,在判定它能否使用十字分解法分解因式时,可以使用Δ=b2-4ac进行判定。当Δ为完全平方数时,可以在整数范围对该多项式进行十字相乘。*//*解法1*//*#include 
#include
using namespace std;const int N=2*10000+5;int nump[N],numk[N];int lenp,lenk;int main(){ int t,a,b,c,p,q,k,m; int n1,n2; cin>>t; while(t--){ cin>>a>>b>>c; n1=sqrt(a); n2=sqrt(c); bool ok=0; lenp=0; lenk=0; for(p=1;p<=n1;p++){ if(a%p==0){ nump[lenp++]=p; nump[lenp++]=a/p; } } for(k=1;k<=n2;k++){ if(c%k==0){ numk[lenk++]=k; numk[lenk++]=c/k; } } for(int i=0;i
#include
using namespace std;int main(){ long long a,b,c; int t; cin>>t; while(t--){ bool ok=0; cin>>a>>b>>c; long long tmp=sqrt(b*b-4*a*c); if(tmp*tmp==b*b-4*a*c) ok=1; if(ok) cout<<"YES"<

转载地址:http://zdmvi.baihongyu.com/

你可能感兴趣的文章
流形学习-高维数据的降维与可视化
查看>>
Python-OpenCV人脸检测(代码)
查看>>
python+opencv之视频人脸识别
查看>>
人脸识别(OpenCV+Python)
查看>>
6个强大的AngularJS扩展应用
查看>>
网站用户登录系统设计——jsGen实现版
查看>>
第三方SDK:讯飞语音听写
查看>>
第三方SDK:JPush SDK Eclipse
查看>>
第三方开源库:imageLoader的使用
查看>>
自定义控件:飞入飞出的效果
查看>>
自定义控件:动态获取控件的高
查看>>
第三方开源库:nineoldandroid:ValueAnimator 动态设置textview的高
查看>>
第三方SDK:百度地图SDK的使用
查看>>
Android studio_迁移Eclipse项目到Android studio
查看>>
JavaScript setTimeout() clearTimeout() 方法
查看>>
CSS border 属性及用border画各种图形
查看>>
转载知乎-前端汇总资源
查看>>
JavaScript substr() 方法
查看>>
JavaScript slice() 方法
查看>>
JavaScript substring() 方法
查看>>