2019牛客暑期多校训练营(第七场)B Irreducible Polynomial
题意:
给你一个n次n+1项式(An*X^n+A(n-1)*X^(n-1)...A*X+A0),将系数An都给你,问你这个多项式是不是一个不可约多项式,可约多项式就是类型(x+1)*(x+2)=
x^2+3*x+2 这一种,它是不可约多项式就输出Yes,否则输出No
题解:
这道题有一个结论就是:当n>=3的时候,它一定不是不可约多项式
那么n==2的时候就是b^2-4*a*c这个来判定就可以了,小于0就不可约,大于0就可约
n<2的时候一定不可约
代码:
1 #include <iostream> 2 #include<stdio.h> 3 #include<algorithm> 4 #include<string.h> 5 typedef long long ll; 6 using namespace std; 7 const int maxn=1e5+10; 8 const int INF=0x3f3f3f3f; 9 int main() 10 { 11 int t; 12 scanf("%d",&t); 13 while(t--) 14 { 15 int n; 16 scanf("%d",&n); 17 if(n<2) 18 { 19 int a; 20 for(int i=0;i<=n;++i) 21 scanf("%d",&a); 22 printf("Yes\n"); 23 } 24 else if(n==2) 25 { 26 int a,b,c; 27 scanf("%d%d%d",&a,&b,&c); 28 int d=b*b-4*a*c; 29 if(d<0) 30 printf("Yes\n"); 31 else printf("No\n"); 32 } 33 else 34 { 35 int a; 36 for(int i=0;i<=n;++i) 37 scanf("%d",&a); 38 printf("No\n"); 39 } 40 } 41 return 0; 42 }