3732 解方程

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 钻石 Diamond
 
 
 
题目描述 Description

输入描述 Input Description

输入文件名为equation.in。

输入共n+2行。

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

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

输出描述 Output Description

输出文件名为equation.out。

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

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

样例输入 Sample Input

equation.in

equation.out

2 10

1

-2

1

1

1

equation.in

equation.out

2 10

2

-3

1

2

1

2

样例输出 Sample Output

equation.in

equation.out

2 10

1

3

2

0

数据范围及提示 Data Size & Hint

分类标签 Tags 点此展开

 
 
 
 /*
嗯rp很重要.(RP++).
这题是要求[1,m]区间中的合法解.
然而m是一个非常大的数.
不考虑精度问题枚举的话o(nm)应该是可行的
(FFT压位我真是太机智了哈哈哈哈哈哈哈)
(画外音:10^10000压位+处理应该会T吧orz)
so我们考虑这个方程在剩余系意义下的解.
(ax)%p等价于(ax+p)%p.
我们mod两个prime.
因为mod一个prime的解可能不充分.
最后从[1,m]中扫一遍合法解.
*/
#include<iostream>
#include<cstring>
#include<cstdio>
#define MAXN 201
#define MAXM 1000001
#define LL long long
using namespace std;
int n,m,ans,p[];
LL a[][MAXM];
bool b[MAXM];
char s1[MAXM];
void slove1(char s[],int l,int k)
{
bool flag=false;
int x;
for(int i=;i<=;i++)
{
x=;
if(s[]=='-') x=,flag=true;
while(x<l) a[i][k]=(a[i][k]*%p[i]+s[x]-)%p[i],x++;
if(flag) a[i][k]=p[i]-a[i][k];//负数.
}
}
bool check(int x,int k)
{
LL tot=,w=;
for(int i=;i<=n;i++)
tot=(tot+a[k][i]*w%p[k])%p[k],w=(w*x)%p[k];
return tot%p[k];
}
void slove()
{
for(int i=;i<=p[];i++)
{
if(check(i,)) continue;
for(int j=i;j<=m;j+=p[])
if(!check(j,)) b[j]=true;
}
int tot=;
for(int i=;i<=m;i++)
if(b[i]) tot++;
printf("%d\n",tot);
for(int i=;i<=m;i++)
if(b[i]) printf("%d\n",i);
}
int main()
{
p[]=,p[]=;
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
{
cin>>s1;
int l=strlen(s1);
slove1(s1,l,i);
}
slove();
return ;
}

[NOIP2014]解方程的更多相关文章

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

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

  2. BZOJ 3751: [NOIP2014]解方程 数学

    3751: [NOIP2014]解方程 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=3751 Description 已知多项式方程: ...

  3. LOJ2503 NOIP2014 解方程 【HASH】

    LOJ2503 NOIP2014 解方程 LINK 题目大意就是给你一个方程,让你求[1,m]中的解,其中系数非常大 看到是提高T3还是解方程就以为是神仙数学题 后来研究了一下高精之类的算法发现过不了 ...

  4. bzoj 3751: [NOIP2014]解方程 同余系枚举

    3.解方程(equation.cpp/c/pas)[问题描述]已知多项式方程:a ! + a ! x + a ! x ! + ⋯ + a ! x ! = 0求这个方程在[1, m]内的整数解(n 和 ...

  5. [BZOJ3751][NOIP2014] 解方程

    Description 已知多项式方程:a0+a1*x+a2*x^2+...+an*x^n=0 求这个方程在[1,m]内的整数解(n和m均为正整数).   Input 第一行包含2个整数n.m,每两个 ...

  6. NOIP2014解方程

    题目:求一个n次整系数方程在1-m内的整数解  n<=100 系数<=10000位 m<=100W 题解:最暴力的想法是枚举x,带入求值看是否为0. 这样涉及到高精度乘高精度,高精度 ...

  7. [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 ...

  8. bzoj 3751: [NOIP2014]解方程

    Description 已知多项式方程: a0+a1x+a2x^2+...+an*x^n=0 求这个方程在[1,m]内的整数解(n和m均为正整数). 解题报告: 这题比较诡,看到高精度做不了,就要想到 ...

  9. 【bzoj3751】[NOIP2014]解方程 数论

    题目描述 已知多项式方程: a0+a1*x+a2*x^2+...+an*x^n=0 求这个方程在[1,m]内的整数解(n和m均为正整数). 输入 第一行包含2个整数n.m,每两个整数之间用一个空格隔开 ...

随机推荐

  1. innodB的隐式锁

    http://blog.csdn.net/taozhi20084525/article/details/19545231 一.知识准备之隐式锁 参考:http://www.uml.org.cn/sjj ...

  2. 清除DataTable中的空行记录

    第一种方法: string filter = ""; ; i < dt.Columns.Count; i++) { ) filter += dt.Columns[i].Col ...

  3. git fetch和git pull之间的区别--转载

    原文地址:http://blog.csdn.net/a19881029/article/details/42245955 git fetch和git pull都可以用来更新本地库,它们之间有什么区别呢 ...

  4. magic_quotes_gpc(魔术引号开关)

    magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据,如包括有:post.get.cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊 ...

  5. socket通信简介

    转:http://blog.csdn.net/xiaoweige207/article/details/6211577 “一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的 ...

  6. Java基础知识强化104:Serializable接口 与 Parcelable接口

    1. 什么是 序列化 和 反序列化 ?     序列化 :序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化.可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间.序 ...

  7. extjs中grid对于其中表单的表头的读取以及是否隐藏的判断

    //获取grid的表头信息 var columns=baseGrid.columns;                     alert(columns.length); //判断列是否隐藏并输出表 ...

  8. ls与dir的区别

    1.ls具有上色的效果,dir没有. 2.ls是unix/linux系列的命令,dir是dos/windows系列的命令.

  9. Swift 2.0学习

    前几天在苹果官方文档学习iOS9 3D Touch的时候,发现苹果关于3D Touch的smaple code,竟然是用Swift语法写的,并且根本没有OC版本的. 看来学习Swift语法是势在必行了 ...

  10. Linux Centos 7 使用yum安装 mysql5.7 (实验成功)

    第一部分:安装Mysql5.7 1.下载YUM库 shell > wget http://dev.mysql.com/get/mysql57-community-release-el7-7.no ...