现有一个一元高阶方程: a 0 + a 1 ∗ x + a 2 ∗ x 2 + . . . + a n ∗ x n = 0 a_0+a_1*x+a_2*x^2+...+a_n*x^n=0 a0+a1∗x+a2∗x2+...+an∗xn=0 现给出数字 m m m,求出此方程在 [ 1 , m ] [1,m] [1,m]以内的整数解。
第一行包含 2 2 2个整数 n n n、 m m m,每两个整数之间用一个空格隔开。 接下来的 n + 1 n+1 n+1行每行包含一个整数,依次为 a 0 a_0 a0, a 1 a_1 a1, a 2 a_2 a2, . . . ... ..., a n a_n an。
第一行输出方程在 [ 1 , m ] [1,m] [1,m]内的整数解的个数。 接下来每行一个整数,按照从小到大的顺序依次输出方程在 [ 1 , m ] [1,m] [1,m]内的一个整数解。
秦九韶公式-百度百科 这个公式是一个简化多项式的一种算法,详细如下
a 0 + a 1 ∗ x + a 2 ∗ x 2 + . . . + a n ∗ x n \ \ \ \ a_0+a_1*x+a_2*x^2+...+a_n*x^n a0+a1∗x+a2∗x2+...+an∗xn = a 0 + x ( a 1 + a 2 ∗ x + . . . + a n ∗ x n − 1 ) =a_0+x(a_1+a_2*x+...+a_n*x^{n-1}) =a0+x(a1+a2∗x+...+an∗xn−1) = a 0 + x ( a 1 + x ( a 2 + a 3 ∗ x + . . . + a n ∗ x n − 2 ) ) =a_0+x(a_1+x(a_2+a_3*x+...+a_n*x^{n-2})) =a0+x(a1+x(a2+a3∗x+...+an∗xn−2)) … … …… …… = a 0 + x ( a 1 + x ( a 2 + x ( a 3 + . . . + x ( a n − 1 + x ( a n ) ) . . . ) =a_0+x(a_1+x(a_2+x(a_3+...+x(a_{n-1}+x(a_n))...) =a0+x(a1+x(a2+x(a3+...+x(an−1+x(an))...)这样子可以很好的优化时间复杂度
本来暴力就可以过题,但是因为数据太大了 要对答案摸一个数才能判是否是0, 但是如果这个数刚好是这个模数的倍数,那就不行了
几个大质数100000000710000000091000000021100000003310000000871000000093从里面任意选两个都可以爆 U l o n g l o n g U long long Ulonglong 所以同时摸两数且同时为零,那么应该就是零了 (万一不是,请模三个)
暂无