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
");
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
");
31             else printf("No
");
32         }
33         else
34         {
35             int a;
36             for(int i=0;i<=n;++i)
37                 scanf("%d",&a);
38             printf("No
");
39         }
40     }
41     return 0;
42 }
View Code
原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/11322668.html