codevs3732==洛谷 解方程P2312 解方程
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 ] 内的一个整数解。
输入输出样例
2 10 1 -2 1
1 1
2 10 2 -3 1
2 1 2
2 10 1 3 2
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 解方程相关推荐
- 洛谷千题详解 | P1008 [NOIP1998 普及组] 三连击【C++、Java、Python语言】
博主主页:Yu·仙笙 专栏地址:洛谷千题详解 目录 题目描述 输入格式 输出格式 输入输出样例 解析: C++源码: Java源码: Python源码: ----------------------- ...
- 洛谷千题详解 | P1014 [NOIP1999 普及组] Cantor 表【C++、Java语言】
博主主页:Yu·仙笙 专栏地址:洛谷千题详解 目录 题目描述 输入格式 输出格式 输入输出样例 解析: C++源码: C++源码2: C++源码3: Java源码: ----------------- ...
- 洛谷千题详解 | P1010 [NOIP1998 普及组] 幂次方【C++、Java、Python、Pascal语言】
博主主页:Yu·仙笙 专栏地址:洛谷千题详解 目录 题目描述 输入格式 输出格式 输入输出样例 解析: C++源码: Pascal源码: Java源码: Python源码: ------------- ...
- 洛谷 2312 / bzoj 3751 解方程——取模
题目:https://www.luogu.org/problemnew/show/P2312 https://www.lydsy.com/JudgeOnline/problem.php?id=3751 ...
- 洛谷T156530 儒略历详解
昨天参加了传智杯的练习赛,里面有一题卡了我很久,今天整理一下记录到博客. 文章目录 题目描述 输入格式 输出格式 样例 思路 变量定义 接受输入 第一部分 第二部分 输出 代码实现 题目描述 输入格式 ...
- 洛谷P2312 解方程题解
洛谷P2312 解方程题解 题目描述 已知多项式方程: \[a_0+a_1x+a_2x^2+\cdots+a_nx^n=0\] 求这个方程在 \([1,m]\) 内的整数解(\(n\) 和 \(m\) ...
- 洛谷 题解 P2312 【解方程】
Problem P2312 [解方程] >>> record 用时: 1166ms 空间: 780KB(0.76MB) 代码长度: 2.95KB 提交记录: R9909587 > ...
- 4.1 简单方程的解
前面章节介绍了向量组和矩阵理论,利用这些理论可以解决线性方程 Amnx=bA_{mn}\mathbf{x}=\mathbf{b}Amnx=b 解的存在性和唯一性问题.向量组理论如下:向量 b\mat ...
- scipy.optimize.fsolve:用Python求解方程的解
例1: 求解方程组的一个解: x0*cos(x1) = 4, x1*x0 - x1 = 5. 需要注意两点: 1.定义方程组,方程组要写出f(x)=0的形式(=0不需要写出来),所以原方程右边4和5都 ...
最新文章
- Numpy的广播机制详解(broadcasting)
- 读《瓦尔登湖》,寂寞的共鸣
- [书目20140322]如何管理软件企业(第2版)
- [C#]手把手教你打造Socket的TCP通讯连接(一)
- Mybatis配置文件头
- c语言出勤成绩,C语言课程设计学生考勤系统文档推荐 (10页)-原创力文档
- 怎么在自己的网站上显示其它网站_自己做网站要怎么选域名?
- [原创]数论个人模板
- Android录音采样率限制问题(十一)
- 从3000元月薪码农到首席架构师的经历
- 直播程序源码更简单的搭建方法
- 数据库之DB2数据库备份
- 熟练使用 Elastic Job系列之作业分片策略(五)
- 多个安卓设备投屏到电脑_安卓手机投屏到电脑上的三种方法
- 三、亚马逊产品定价其实就这么简单,一个公式解决
- 05.Node.js和浏览器之间的差异
- 一只小野鸭的超能量(超有启发性)
- 如何在eclipse中建立一个安卓工程
- 服务器性能差用cdn有用吗,CDN加速有用吗?对网站有什么好处?
- java prase xml error
热门文章
- 一起谈.NET技术,asp.net 页面转向 Response.Redirect, Server.Transfer, Server.Execute的区别...
- Recompile/upgrade nginx binary with no down-time
- 协同办公OA系统 沉淀企业文化
- 电商巨头Shopify 两名员工被指窃取客户交易详情
- 微软 Edge 浏览器被指共享隐私遥测数据
- Spring - Netty (整合)
- 使用alarm API实现灵活的延时操作
- Struts2标签库整理【完整】
- 爱数助力国资委实现混合IT环境下的业务保护
- 简洁jQuery滑动门插件