2019牛客暑期多校训练营(第七场)B-Irreducible Polynomial 【数论】
题目:https://ac.nowcoder.com/acm/contest/887/B
大致题意:
给你一个数n,接下来给你n+1个数字(an,an-1……a0)表示这是一个n次多项式,ai表示第i次项前的系数。问你这个n次多项式是否能被因式分解。
思路:
签到题,然而我是真的菜,做不出来,其实就是一个很简单的数学知识:
实数域不可拆分多项式只有两种:一次多项式和二次的(b^2<4ac)
ok,直到了这个数学知识之后,秒过。
代码:
#include<bits/stdc++.h>
using namespace std;
int main() {
int cas;
scanf("%d",&cas);
while(cas--) {
int n, a[50];
scanf("%d",&n);
for(int i = 0; i <= n; i++) {
scanf("%d",&a[i]);
}
if(n == 1 || n == 0)
printf("Yes\n");
else if(n == 2) {
//b^2-4ac,判别式
int det = a[1] * a[1] - 4 * a[2] * a[0];
if(det < 0)
printf("Yes\n");
else
printf("No\n");
}
else
printf("No\n");
}
return 0;
}