[NOIP2014] 解方程
题目描述
已知多项式方程:
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
题解:
具体不是很清楚啊......
抄了抄代码而已......
1 #include <cstdio> 2 #include <iostream> 3 #include <algorithm> 4 #include <cstring> 5 #include <cmath> 6 #include <iostream> 7 #define ll long long 8 using namespace std; 9 10 const int maxn = 110; 11 const int maxm = 1000010; 12 13 int n,m; 14 int mod[5]={11261,19997,22877,21893,14843}; 15 int a[maxn][5],ans[maxm],pre[maxn][5],res[maxm][5]; 16 char s[10010]; 17 18 int cal(int x, int j) { 19 int sum=0; 20 for(int i=0; i<=n; i++) sum=(sum+pre[i][j]*a[i][j])%mod[j]; 21 if(sum<0) sum+=mod[j];//处理模后负数,%+% 22 return sum; 23 } 24 25 bool check(int x) { 26 for(int j=0; j<5; j++) 27 if(res[x%mod[j]][j]) return 0; 28 return 1; 29 } 30 31 int main() { 32 scanf("%d%d", &n, &m); 33 for(int i=0; i<=n; i++) { 34 scanf("%s", s); 35 int ls=strlen(s); bool flg=0; 36 for(int j=0; j<5; j++) 37 if(s[0]=='-') flg=1; 38 else a[i][j]=s[0]-'0'; 39 for(int j=0; j<5; j++) { 40 for(int l=1; l<ls; l++) a[i][j]=(a[i][j]*10+s[l]-'0')%mod[j]; 41 if(flg) a[i][j]=-a[i][j]; 42 } 43 } 44 for(int j=0; j<5; j++) { 45 pre[0][j]=1; 46 for(int x=1; x<mod[j]; x++) { 47 for(int i=1; i<=n; i++) 48 pre[i][j]=(pre[i-1][j]*x)%mod[j]; 49 res[x][j]=cal(x,j); 50 } 51 } 52 for(int i=1; i<=m; i++) 53 if(check(i)) ans[++ans[0]]=i; 54 printf("%d\n", ans[0]); 55 for(int i=1; i<=ans[0]; i++) 56 printf("%d\n", ans[i]); 57 return 0; 58 }
转载于:https://www.cnblogs.com/HLXZZ/p/7266893.html
[NOIP2014] 解方程相关推荐
- 【BZOJ】3751: [NOIP2014]解方程【秦九韶公式】【大整数取模技巧】
3751: [NOIP2014]解方程 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 4856 Solved: 983 [Submit][Stat ...
- bzoj 3751: [NOIP2014]解方程(同余系)
3751: [NOIP2014]解方程 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 3983 Solved: 850 [Submit][Stat ...
- [BZOJ3751] [NOIP2014] 解方程 (数学)
Description 已知多项式方程:$a_0+a_1*x+a_2*x^2+...+a_n*x^n=0$ 求这个方程在[1,m]内的整数解(n和m均为正整数). Input 第一行包含2个整数n.m ...
- 【NOIP2014】解方程【秦九韶】【高精度处理】
传送门 其实秦九韶相信都会,主要是喜欢这道题对于高精度的处理. 我们发现这道题的情况比较特殊,a大的很,看起来是要高精度的鸭子. 不过我们发现一个事情.我们是在解方程,找到合适的x使多项式为0.那mo ...
- python解复杂方程_Python数据处理篇之Sympy系列(五)---解方程
前言 sympy不仅在符号运算方面强大,在解方程方面也是很强大. 本章节学习对应官网的:Solvers 官方教程 (一)求解多元一次方程-solve() 1.说明: 解多元一次方程可以使用solve( ...
- java2的7次方怎么表示_python编程解方程第二弹:10行代码解二次方程(纯字符)...
用纯字符串格式来记录二次方程: '3x^2-10x-8=0' 'x^2-2x+1=0' '3x^2+14x+8=0' 'x^2=9' 二次方怎么表示呢?比如上面的^表示法,或者是python风格的** ...
- 10.24T3 解方程 取模意义下运算+秦九韶算法
#1228 解方程 描述 已知多项式方程: a0+a1x+a2x^2+..+anx^n=0 求这个方程在[1, m ] 内的整数解(n 和m 均为正整数) 输入 输入共n + 2 行. 第一行包含2 ...
- 洛谷P2312 解方程题解
洛谷P2312 解方程题解 题目描述 已知多项式方程: \[a_0+a_1x+a_2x^2+\cdots+a_nx^n=0\] 求这个方程在 \([1,m]\) 内的整数解(\(n\) 和 \(m\) ...
- 重根迭代法解方程(两种方法)(Python实现)
简述 通过两种不同的重根迭代的来解方程. 处理的方程是 (sin(x) - x/2) ^2 = 0 代码 采用的第一种迭代重根迭代方法: xk+1=xk−mf(xk)f′(xk)xk+1=xk−mf( ...
最新文章
- 贪心:Wiggle Subsequence 摇摆序列
- 扩展城市信道etu模型matlab仿真,LTE System Toolbox:无线通信系统的仿真、分析和测试...
- Ascend学习资源
- Linux Shell脚本之向脚本传递参数
- Centos7将firewall替换成iptables
- 已知c语言程序有主程序模块prog.c,嵌入式系统试卷--A卷
- python tqdm进度条打印
- python动态与静态语言_静态语言和动态语言的区别
- 【自】数据库系统原理(三)——测试总结后,
- 跳跃回溯____寻找最长平台
- ComponentPattern (组合模式)
- 织梦网站调用变量失败_(自适应手机版)响应式精密机械模具类网站织梦模板 织梦仪器模具加工设备网站模板下载...
- 四阶五级matlab,微分方程数值解法matlab(四阶龙格—库塔法).ppt
- 怎么给php加音乐,给网站加上背景音乐的方法
- wampserver php 目录,小常识-WAMPServer自定义根目录
- 装配区5s管理制度推行办法
- DB2新建用户及数据库过程
- BZOJ 1413: [ZJOI2009]取石子游戏 博弈+Dp
- 大厂对学历的要求是什么?如果学历不够,拿什么来凑?
- 怎么查看linux自动校验时间,linux校验时间
热门文章
- [原创] 为什么模除的时候一般建议选择素数来除?比如说hashtable的桶数会取一个素数...
- 2015年9月百度前端在线笔试
- 自学python系列10:python的函数和函数式编程
- winform下通过webclient使用非流方式上传(post)数据和文件
- Ubuntu+Apache+PHP+Mysql环境搭建
- iOS UICollectionViewCell 的拖动
- JavaMail 发送邮件
- 嵌入式培训学习历程第三天
- 数据库——startup,startup mount,startup nomount有什么区别
- Oracle 日志文件