描述

已知多项式方程:

a0+a1x+a2x2+...+anxn=0

求这个方程在[1, m]内的整数解(n 和 m 均为正整数)。

格式

输入格式

输入共 n+2 行。

第一行包含 2 个整数 n、m,每两个整数之间用一个空格隔开。

接下来的 n+1 行每行包含一个整数,依次为a0,a1,a2,...,an

输出格式

第一行输出方程在[1, m]内的整数解的个数。

接下来每行一个整数,按照从小到大的顺序依次输出方程在[1, m]内的一个整数解。

样例1

样例输入1

 
2 10
1
-2
1

样例输出1

 
1
1

样例2

样例输入2

 
2 10
2
-3
1

样例输出2

 
2
1
2

样例3

样例输入3

 
2 10
1
3
2

样例输出3

 
0

限制

对于 30%的数据,0 < n ≤ 2, |ai| ≤ 100,an ≠ 0, m ≤ 100;

对于 50%的数据,0 < n ≤ 100, |ai| ≤ 10100 ,an ≠ 0,m ≤ 100;

对于 70%的数据,0 < n ≤ 100, |ai| ≤ 1010000 ,an ≠ 0,m ≤ 10000;

对于 100%的数据,0 < n ≤ 100, |ai| ≤ 1010000 ,an ≠ 0,m ≤ 1000000。

来源

NOIP2014 提高组 Day2

今天重新做了一下NOIP原题,当时啥也不会,就直接输出0,搞了10分,今天看看撑死也就30,50了,用了网上的一种hash法勉强搞到70分,AC的还未看懂,下面给个标准的题解吧,争取早日理解。

30% : 穷举x,判断等式是否成立。

50% : 在30%的做法中加入高精度乘法,加法。不用高精减的原因是,只要把符号相同的项移到等式一边,最后再计算等式两边数值是否相等。同时记得要写秦九韶(霍纳法则)优化。

70% : 根据同余的性质,同余符号两边可以支持同加一个数,同乘一个数。那么可以对等式两边同时对一个数取模,如果同余符号成立,那么原等式有可能成立,反之则筛掉该x。在实际操作时对ai用一个素数取模,然后再穷举x,一边取mod一边运算。于是就可以把单次检验复杂度降为O(n)

复杂度 : O(nm)

100% : 根据二项式定理,f(x+p)在展开后必然可以整理成f(x)+T,其中T为关于p的一个多项式,而在同余(mod p)的环境下,T是可以忽略的,也就是说,那么事实上f(x) mod p就是在[1,m]上的周期函数,那么我们只要预处理出f(0)~f(p-1),就相当于知道了f(x) mod p在该区间上的全部情况。于是我们对上述算法优化,从选一个质数改为选取多个小质数pi进行验证,对每一个pi进行0~(pi-1)的预处理后,就可以筛掉一些x。最后输出剩下的x。

复杂度 : O(+m)

转载于:https://www.cnblogs.com/CXCXCXC/p/4652818.html

NOIP 2014 解方程相关推荐

  1. [NOIp提高组2014]解方程

    题目大意 求方程 \[ \sum_{i=0}^{n}a_ix^i=0 \] 在\([1,m]\)内的整数解 \(1 \leq |a_i| \leq 10^{10000},a_i\neq 0,1 \le ...

  2. 洛谷 题解 P2312 【解方程】

    Problem P2312 [解方程] >>> record 用时: 1166ms 空间: 780KB(0.76MB) 代码长度: 2.95KB 提交记录: R9909587 > ...

  3. python解复杂方程_Python数据处理篇之Sympy系列(五)---解方程

    前言 sympy不仅在符号运算方面强大,在解方程方面也是很强大. 本章节学习对应官网的:Solvers 官方教程 (一)求解多元一次方程-solve() 1.说明: 解多元一次方程可以使用solve( ...

  4. java2的7次方怎么表示_python编程解方程第二弹:10行代码解二次方程(纯字符)...

    用纯字符串格式来记录二次方程: '3x^2-10x-8=0' 'x^2-2x+1=0' '3x^2+14x+8=0' 'x^2=9' 二次方怎么表示呢?比如上面的^表示法,或者是python风格的** ...

  5. 【BZOJ】3751: [NOIP2014]解方程【秦九韶公式】【大整数取模技巧】

    3751: [NOIP2014]解方程 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 4856  Solved: 983 [Submit][Stat ...

  6. 10.24T3 解方程 取模意义下运算+秦九韶算法

    #1228 解方程 描述 已知多项式方程: a0+a1x+a2x^2+..+anx^n=0 求这个方程在[1, m ] 内的整数解(n 和m 均为正整数) 输入 输入共n + 2 行. 第一行包含2 ...

  7. 洛谷P2312 解方程题解

    洛谷P2312 解方程题解 题目描述 已知多项式方程: \[a_0+a_1x+a_2x^2+\cdots+a_nx^n=0\] 求这个方程在 \([1,m]\) 内的整数解(\(n\) 和 \(m\) ...

  8. 重根迭代法解方程(两种方法)(Python实现)

    简述 通过两种不同的重根迭代的来解方程. 处理的方程是 (sin(x) - x/2) ^2 = 0 代码 采用的第一种迭代重根迭代方法: xk+1=xk−mf(xk)f′(xk)xk+1=xk−mf( ...

  9. 【PC工具】如何简单粗暴无脑的解方程

    都2020年了(二十一世纪快中叶了): 信息时代这么多年了,已经进入云计算时代了: 电脑都会下围棋了: 火箭都能回收了: ... 那么 问题就来了:我们是不是还要用手解方程呢?电脑能不能给爷(我)解方 ...

最新文章

  1. LightTools( 32-64) 8.4.0下载与安装方法,lighttools免费版,lighttools(光学建模软件)【亲测有效】
  2. Fragment实现的底部导航
  3. HTML5 进阶系列:拖放 API 实现拖放排序
  4. EOJ_1049_三元组稀疏矩阵相加
  5. LeetCode-14 最长公共前缀
  6. 阿里大神最佳总结Flutter进阶学习笔记,技术详细介绍
  7. 令人拍案叫绝的EfficientNet和EfficientDet
  8. Oracle中一般游标与REF游标的区别
  9. WF4 常用类第二篇
  10. MySQL怎么卸载干净重装?
  11. R语言期末试题-重庆工商大学-统计学课程
  12. el-scrollbar 优化滚动条样式
  13. UCloud宗泽:区块链安全现状堪忧,泡沫与价值并存
  14. Rainmeter音频频谱插件分享
  15. 力天创见客流统计分析系统
  16. 树莓派4通过华为ME909S 4G模块连接蜂窝网(非PPP)
  17. oracle 全文索引 优化,通过案例学调优之--Oracle 全文索引
  18. Cadence IC 617 虚拟机安装使用说明
  19. 如何解决Myeclipse不能自动编译
  20. 如何合并pdf文件?多pdf文件合并技能分享

热门文章

  1. 的ppt_PPT丨清新淡雅年终总结PPT模板
  2. linux下mysql 8.0配置大小写不敏感
  3. 轻量级服务器与云服务器的区别
  4. 【服务器】WAMP一键安装PHP开发环境
  5. 【HNOI2009】【BZOJ1008】越狱(组合,方案数,水题)
  6. CodeVs天梯黄金Gold题解
  7. linux系统 qt开发,老板让我写一个Windows程序,结果我在Linux下用Qt开发
  8. 仿京东显示隐藏密码明文案例(字体图标实现)
  9. hdu 6397 Character Encoding
  10. CSS的概念及优势(简单介绍)