P2312 解方程

    • 195通过
    • 1.6K提交
  • 题目提供者该用户不存在
  • 标签数论(数学相关)高精2014NOIp提高组
  • 难度提高+/省选-

提交该题 讨论 题解 记录

题目描述

已知多项式方程:

a0+a1x+a2x^2+..+anx^n=0

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

输入输出格式

输入格式:

输入文件名为equation .in。

输入共n + 2 行。

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

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

输出格式:

输出文件名为equation .out 。

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

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

输入输出样例

输入样例#1:

2 10
1
-2
1

输出样例#1:

1
1

输入样例#2:

2 10
2
-3
1

输出样例#2:

2
1
2

输入样例#3:

2 10
1
3
2  

输出样例#3:

0

说明

30%:0<n<=2,|ai|<=100,an!=0,m<100

50%:0<n<=100,|ai|<=10^100,an!=0,m<100

70%:0<n<=100,|ai|<=10^10000,an!=0,m<10000

100%:0<n<=100,|ai|<=10^10000,an!=0,m<1000000

 AC代码:

#include<cstdio>
#include<cstring>
using namespace std;
#define ll long long
#define M 110
#define N 1000100
int n,m,ans;
bool sum[N];
ll a[3][M];
char s[N];
int prime[3]={0,67891,1000000207};
void pre(char *s,int k){int len=strlen(s);bool flag=0;for(int i=1,start;i<=2;i++){start=0;if(s[0]=='-'){flag=1;start=1;}for(;start<len;start++){a[i][k]=(a[i][k]*10LL%prime[i]+s[start]-'0')%prime[i];}if(flag) a[i][k]=prime[i]-a[i][k];}
}
bool judge(int x,int k){ll ans=0,b=1;for(int i=0;i<=n;i++){ans=(ans+1LL*a[k][i]*b)%prime[k];b=1LL*b*x%prime[k];}return ans%prime[k];
}
int main(){scanf("%d%d",&n,&m);memset(sum,0,sizeof sum);for(int i=0;i<=n;i++){scanf("%s",s);pre(s,i);}for(int i=1;i<=prime[1];i++){if(judge(i,1)) continue;for(int j=i;j<=m;j+=prime[1]) if(!judge(j,2)) sum[j]=1;//break;//交了5次才发现,QAQ
    }for(int i=1;i<=m;i++) if(sum[i]) ans++;printf("%d\n",ans);for(int i=1;i<=m;i++) if(sum[i]) printf("%d\n",i);return 0;
}

转载于:https://www.cnblogs.com/shenben/p/5674743.html

codevs3732==洛谷 解方程P2312 解方程相关推荐

  1. 洛谷千题详解 | P1008 [NOIP1998 普及组] 三连击【C++、Java、Python语言】

    博主主页:Yu·仙笙 专栏地址:洛谷千题详解 目录 题目描述 输入格式 输出格式 输入输出样例 解析: C++源码: Java源码: Python源码: ----------------------- ...

  2. 洛谷千题详解 | P1014 [NOIP1999 普及组] Cantor 表【C++、Java语言】

    博主主页:Yu·仙笙 专栏地址:洛谷千题详解 目录 题目描述 输入格式 输出格式 输入输出样例 解析: C++源码: C++源码2: C++源码3: Java源码: ----------------- ...

  3. 洛谷千题详解 | P1010 [NOIP1998 普及组] 幂次方【C++、Java、Python、Pascal语言】

    博主主页:Yu·仙笙 专栏地址:洛谷千题详解 目录 题目描述 输入格式 输出格式 输入输出样例 解析: C++源码: Pascal源码: Java源码: Python源码: ------------- ...

  4. 洛谷 2312 / bzoj 3751 解方程——取模

    题目:https://www.luogu.org/problemnew/show/P2312 https://www.lydsy.com/JudgeOnline/problem.php?id=3751 ...

  5. 洛谷T156530 儒略历详解

    昨天参加了传智杯的练习赛,里面有一题卡了我很久,今天整理一下记录到博客. 文章目录 题目描述 输入格式 输出格式 样例 思路 变量定义 接受输入 第一部分 第二部分 输出 代码实现 题目描述 输入格式 ...

  6. 洛谷P2312 解方程题解

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

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

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

  8. 4.1 简单方程的解

    前面章节介绍了向量组和矩阵理论,利用这些理论可以解决线性方程 Amnx=bA_{mn}\mathbf{x}=\mathbf{b}Amn​x=b 解的存在性和唯一性问题.向量组理论如下:向量 b\mat ...

  9. scipy.optimize.fsolve:用Python求解方程的解

    例1: 求解方程组的一个解: x0*cos(x1) = 4, x1*x0 - x1 = 5. 需要注意两点: 1.定义方程组,方程组要写出f(x)=0的形式(=0不需要写出来),所以原方程右边4和5都 ...

最新文章

  1. Numpy的广播机制详解(broadcasting)
  2. 读《瓦尔登湖》,寂寞的共鸣
  3. [书目20140322]如何管理软件企业(第2版)
  4. [C#]手把手教你打造Socket的TCP通讯连接(一)
  5. Mybatis配置文件头
  6. c语言出勤成绩,C语言课程设计学生考勤系统文档推荐 (10页)-原创力文档
  7. 怎么在自己的网站上显示其它网站_自己做网站要怎么选域名?
  8. [原创]数论个人模板
  9. Android录音采样率限制问题(十一)
  10. 从3000元月薪码农到首席架构师的经历
  11. 直播程序源码更简单的搭建方法
  12. 数据库之DB2数据库备份
  13. 熟练使用 Elastic Job系列之作业分片策略(五)
  14. 多个安卓设备投屏到电脑_安卓手机投屏到电脑上的三种方法
  15. 三、亚马逊产品定价其实就这么简单,一个公式解决
  16. 05.Node.js和浏览器之间的差异
  17. 一只小野鸭的超能量(超有启发性)
  18. 如何在eclipse中建立一个安卓工程
  19. 服务器性能差用cdn有用吗,CDN加速有用吗?对网站有什么好处?
  20. java prase xml error

热门文章

  1. 一起谈.NET技术,asp.net 页面转向 Response.Redirect, Server.Transfer, Server.Execute的区别...
  2. Recompile/upgrade nginx binary with no down-time
  3. 协同办公OA系统 沉淀企业文化
  4. 电商巨头Shopify 两名员工被指窃取客户交易详情
  5. 微软 Edge 浏览器被指共享隐私遥测数据
  6. Spring - Netty (整合)
  7. 使用alarm API实现灵活的延时操作
  8. Struts2标签库整理【完整】
  9. 爱数助力国资委实现混合IT环境下的业务保护
  10. 简洁jQuery滑动门插件