codevs3732 解方程
%%%。设f(x)=a0+a1x+a2x^2+ … + anx^n.求f(x)=0的x。
数据范围很大,高精度只能骗分。
运用类似hash的思想。 如果这个等式mod p 还成立(p为质数)那它很可能就是成立。
多取几个质数(大质数更优)就可以几乎确定了。(70分)
100分时m很大,不能都算出来。
仔细分析,如果在模p时f(x)!=0,则f(x+p)肯定也不是解。这样一来只需枚举从1到p的数即可确定所有的数是否能为解。
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn = 100000 + 10;
const int maxm = 1000000 + 10; const long long p[]={11261,19997,22877,21893,14843,17851};
long long a[110][10];
long long f[maxn][10];
int n,m,cnt;
char s[maxn];
bool able[maxm];
int res[maxm]; long long calc (long long i,int j) {
long long sum=a[0][j]; long long t=1; i=i%p[j];
for(int k=1;k<=n;k++) {
t=t*i%p[j];
sum=(sum+a[k][j]*t)%p[j];
}
return sum;
} int main() {
bool sgn;
scanf("%d%d",&n,&m);
for(int i=0,l;i<=n;i++) {
scanf("%s",s);
l=strlen(s);
sgn=0; for(int j=0;j<l;j++) {
if(s[j]=='-') {
sgn=1;
continue;
}
for(int k=0;k<6;k++) a[i][k]=(a[i][k]*10+s[j]-'0')%p[k];
} if(sgn)
for(int k=0;k<6;k++) a[i][k]=p[k]-a[i][k];
}
for(int j=0;j<6;j++)
for(int i=1;i<=p[j];i++)
f[i][j]=calc(i,j); memset(able,1,sizeof(able)); for(int j=0;j<6;j++)
for(int i=1;i<=m;i++)
if(f[i%p[j]][j] != 0) able[i]=0;
for(int i=1;i<=m;i++) if(able[i]) res[++cnt]=i; printf("%d\n",cnt);
for(int i=1;i<=cnt;i++) printf("%d\n",res[i]);
return 0;
}
codevs3732 解方程的更多相关文章
- codevs3732==洛谷 解方程P2312 解方程
P2312 解方程 195通过 1.6K提交 题目提供者该用户不存在 标签数论(数学相关)高精2014NOIp提高组 难度提高+/省选- 提交该题 讨论 题解 记录 题目描述 已知多项式方程: a ...
- vijos P1915 解方程 加强版
背景 B酱为NOIP 2014出了一道有趣的题目, 可是在NOIP现场, B酱发现数据规模给错了, 他很伤心, 哭得很可怜..... 为了安慰可怜的B酱, vijos刻意挂出来了真实的题目! 描述 已 ...
- HDU 4793 Collision --解方程
题意: 给一个圆盘,圆心为(0,0),半径为Rm, 然后给一个圆形区域,圆心同此圆盘,半径为R(R>Rm),一枚硬币(圆形),圆心为(x,y),半径为r,一定在圆形区域外面,速度向量为(vx,v ...
- [NOIP2014]解方程
3732 解方程 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 输入描述 Input Descrip ...
- bzoj 3751: [NOIP2014]解方程 同余系枚举
3.解方程(equation.cpp/c/pas)[问题描述]已知多项式方程:a ! + a ! x + a ! x ! + ⋯ + a ! x ! = 0求这个方程在[1, m]内的整数解(n 和 ...
- Ural 1046 Geometrical Dreams(解方程+计算几何)
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1046 参考博客:http://hi.baidu.com/cloudygoose/item ...
- 2017广东工业大学程序设计竞赛决赛 题解&源码(A,数学解方程,B,贪心博弈,C,递归,D,水,E,贪心,面试题,F,贪心,枚举,LCA,G,dp,记忆化搜索,H,思维题)
心得: 这比赛真的是不要不要的,pending了一下午,也不知道对错,直接做过去就是了,也没有管太多! Problem A: 两只老虎 Description 来,我们先来放松下,听听儿歌,一起“唱” ...
- 5.5Python数据处理篇之Sympy系列(五)---解方程
目录 目录 前言 (一)求解多元一次方程-solve() 1.说明: 2.源代码: 3.输出: (二)解线性方程组-linsolve() 1.说明: 2.源代码: 3.输出: (三)解非线性方程组-n ...
- python 解方程
[怪毛匠子=整理] SymPy 库 安装 sudo pip install sympy x = Symbol('x') 解方程 solve([2 * x - y - 3, 3 * x + y - 7] ...
随机推荐
- php获取客户端ip地址
本文介绍一个,php获取客户端的IP地址的实例代码,有需要的朋友参考下吧. 获取客户端IP地址的代码,如下: 复制代码代码示例: <?php//取得客户端IP的函数function get_cl ...
- Delphi摄像头操作
/*Title:Delphi摄像头操作 *Author:Insun *Blog:http://yxmhero1989.blog.163.com *From:www.4safer.com */ 为了笔耕 ...
- ASP.NET文件上传
<asp:FileUpload ID="FileUpload" runat="server" /> private string upLoad() ...
- c#中sqlhelper类的编写(一)
在.net平台的项目开发中,凡是用到数据库交互的,都有必要了解SqlHelper类的原理. 步骤一: 我就拿WPF项目开发作为例子.首先要新建一个App.config(应用程序配置文件).注意,在VS ...
- Thinkcmf 在新浪云上的部署问题
最近要开发一个社团主页,于是想到了CMF内容管理系统的,但是直接在自己的服务器测试成本太高,于是选择了在新浪云上进行部署测试. 但是在安装Thinkcmf的过程中产生了一些技术性的问题.但最后终于在自 ...
- jQuery 的 json 格式的处理问题
在实际的使用中时常会发生一些ajax验证的诡异事件,如我在一个文件中使用json传送数据,结果出现了当数据发送到服务器端时(后端主要呈现的是对json数据对象的数据库查询操作),结果显示的是数据已经插 ...
- Matlab生成动态链接库供C#调用
1.首先在Matlab中编写一个或几个.m文件 2.然后在命令空间中输入命令:deploytool 3.修改工程名称,修改需要生成文件后缀 4.添加类,添加文件,然后点击生成.
- Java中的异常处理(二)
1.finally package second; public class C { public static void main(String[] args){ String name = nul ...
- 【NHibernate】应用层面需要掌握的知识汇总
休息接待区 欢迎加入NHibernate中文社区!在讨论中寻找乐趣!在问题中寻找答案! 旅途站点路线 第一站:熟悉NHibernate NHibernate之旅(1):开篇有益 第二站:接触NHibe ...
- 经典好文:android和iOS平台的崩溃捕获和收集
通过崩溃捕获和收集,可以收集到已发布应用(游戏)的异常,以便开发人员发现和修改bug,对于提高软件质量有着极大的帮助.本文介绍了iOS和android平台下崩溃捕获和收集的原理及步骤,不过如果是个人开 ...