NOIP2014 uoj20解方程 数论(同余)

又是数论题


 

Q&A

Q:你TM做数论上瘾了吗

A:没办法我数论太差了,得多练(shui)啊

 


 

题意

题目描述

已知多项式方程:

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 ] 内的一个整数解。


 

我们来看看这鬼畜的NOIP题目怎么做(shui)

讲道理,这道题最难的地方在于:不知谁在洛谷上给它贴上了高精度的标签(管理给我滚粗来)我想知道有多少人在这狗血标签的引导下怒写高精+压位+秦九昭+各种奇技淫巧优化,最后拿个T回去哭

 


 正解并没有用到高精度(虽然我写的输入是仿照高精度的,但是hzw大的代码是直接字符串处理的Orz)
但是hzw用了一个神奇的pre来存x的i次方,我懒得打就打了一个秦九昭(讲道理,秦九昭不会比暴力难打,而且可以少开一个数组)

顺便一提,据说大神用过的质数会有灵气,我直接用了hzw用的5个质数当mod

对于5个(其实无所谓选几个,多一点可以保险一些我这种rp不佳的必备)选出的质数p,每个都处理出1~p-1代入原式modp算出的结果

这个结果就可以代表所有modp同余的数的结果(因为显然每次增加p的话,结果变化量是p的倍数,modp以后不会变),若modp以后不为0则一定不是方程解

尽管我们不能保证为0的话实际结果就一定是0,但是用5个数都验证一遍以后基本就能保证这个结果为0

===没了===


 

上代码

 1 #include<cstdio>
 2 int mod[5]={11261,19997,22877,21893,14843};
 3 int n,m;
 4 int ans[1000005];
 5 int a[5][105],res[5][30005],aa[105][10005],num[105];
 6 bool flag[105];
 7 int main()
 8 {
 9     scanf("%d%d",&n,&m);
10     char ch=getchar();
11     for(int i=0;i<=n;i++)
12         for(num[i]=0,flag[i]=false,ch=getchar();(ch>='0' && ch<='9')||(ch=='-');ch=getchar())
13             if(ch=='-')
14                 flag[i]=true;
15             else
16                 aa[i][++num[i]]=ch-'0';
17     for(int i=0;i<5;i++)
18         for(int j=0;j<=n;j++)
19         {
20             a[i][j]=0;
21             for(int k=1;k<=num[j];k++)
22                 a[i][j]=(a[i][j]*10+aa[j][k])%mod[i];
23             if(flag[j])
24                 a[i][j]=-a[i][j];
25         }
26     for(int t=0;t<5;t++)
27         for(int x=1;x<mod[t];x++)
28         {
29             int sum=0;
30             for(int i=n;i>=0;i--)
31                 sum=(sum*x+a[t][i])%mod[t];
32             res[t][x]=sum;
33         }
34     int sum=0;
35     bool flag;
36     for(int i=1;i<=m;i++)
37     {
38         flag=true;
39         for(int t=0;t<5;t++)
40             if(res[t][i%mod[t]]!=0)
41             {
42                 flag=false;
43                 break;
44             }
45         if(flag)
46             ans[++sum]=i;
47     }
48     printf("%d\n",sum);
49     for(int i=1;i<=sum;i++)
50         printf("%d\n",ans[i]);
51     return 0;
52 }

 

转载于:https://www.cnblogs.com/wanglichao/p/5683694.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php transfer-encoding: chunked,php – 使用chunked transfer encoding和gzip

我最近开始在我的网站上使用gzip,它在除Opera之外的所有浏览器上都起到了一种魅力作用,它给出了一个错误,即由于数据损坏而无法解压缩内容.从我可以从测试和谷歌搜索中收集到的,使用gzip和chunked传输编码可能是一个问题.请求像css文件这样的小文件时没有错误这一事实也指向了这…

@override

目录 用处 作用 注意 用处&#xff1a; 继承抽象类&#xff0c;必须实现抽象方法&#xff0c;方法上要加override 实现接口时&#xff0c;必须实现接口里定义的方法&#xff0c;方法上要加override 作用&#xff1a; 可以检查方法签名的拼写错误 改变父类中的一些行为 Override…

java实现语音发送,Java实现发送手机短信语音验证功能代码实例

这篇文章主要介绍了java实现发送手机短信语音验证功能代码实例,www.cppcns.com文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下利用第三方平台可以实现发送手机短信验证码和语音验证码的功能&#xff0c;本文使用…

c++父类和子类转化致命的代码错误

最近在工作中&#xff0c;出现了严重的代码错误&#xff0c;对象的基类和子类的继承&#xff0c;代码大致如下&#xff1a; class A { };class B : public A { }void main() {A* a;(用于子类对象来进行赋值&#xff09; new 子类;//错误代码如下B* b (B*) a;b.方法; }//在这个…

JAVA获得天气json数据的方法,获取从天气预报接口返回回来的json数据

WampServer集成环境安装与配置实习到了第三个礼拜了,原来我们小组是以开发php为主的,我们项目的服务器也是用php做的,因此我觉得很有必要学一下php的相关知识,首先当然是搭建环境了,写篇博客分享下经验. 目录: 一.软件下载 二 ...C&plus;&plus;与Lua交互(三)通过上一篇…

大专学的pHp找什么工作,大专毕业能做什么工作 毕业都去干嘛了

大专毕业能做什么工作&#xff0c;大专毕业后都去干嘛了&#xff0c;我梳理了基本信息&#xff0c;看来一下&#xff01;大专毕业能做什么工作专科生毕业之后从业的职位基础包含了社会发展的各个方面。一般能够从业自身技术专业有关的工作中&#xff0c;如果有做生意的技能&…

SpringMVC启动过程详解(li)

通过对SpringMVC启动过程的深入研究&#xff0c;期望掌握Java Web容器启动过程&#xff1b;掌握SpringMVC启动过程&#xff1b;了解SpringMVC的配置文件如何配置&#xff0c;为什么要这样配置&#xff1b;掌握SpringMVC是如何工作的&#xff1b;掌握Spring源码的设计和增强阅读…

fusioncharts json java,FusionCharts使用教程:利用XML/JSON属性加载外部LOGO

在使用FusionCharts图表时&#xff0c;你可以在运行时加载外部Logo并显示于图表中。Logo可以是GIF/JPEG/PNG或SWF文件。你可以使用chart元素的logoURL属性来加载一个Logo。XMLJSON{"chart":{ "yaxisname":"Sales Figure", "caption":&…

java redis 多节点,Redis单机多节点集群部署,超简单

1、在虚拟机中部署具有三个主节点&#xff0c;三个从节点的集群(注&#xff0c;必须要有从节点)&#xff0c;虚拟机的IP地址为192.168.133.129&#xff0c;三个主节点的部口号分别为7001(从&#xff1a;7004)、7002(从&#xff1a;7005)、7003(从&#xff1a;7006)。2、安装Red…

matlab检测串口数据帧头,MATLAB 串口读取姿态数据及GUI实时动态显示设计

上一篇实现了Matlab 对串口数据的读取&#xff0c;数据可以读取并且保存到本地。本文主要设计GUI并且动态的显示曲线。可以更直观的观察实时的姿态数据和传感器数据。GUI设计效果&#xff1a;姿态GUi.png分别设置三个区域&#xff0c;分别为数据接收显示区域&#xff0c;串口设…

[转]面向对象的六大原则

现在编程的主流语言基本上都是面向对象的。如C#&#xff0c;C&#xff0c;JAVA。我们在使用时&#xff0c;已经构造了一个个的类。但是往往由于我们在类内部或外部的设计上存在种种问题&#xff0c;导致尽管是面向对象的语言&#xff0c;却是面向过程的逻辑&#xff0c;甚至维护…

matlab中response函数,matlab函数的种类

突然发现matlab的函数还是很有讲究的&#xff0c;以前只是用&#xff0c;很少注意这个问题&#xff0c;现在看到了稍微总结一下吧。在matlab帮助中搜索Types of Functions&#xff0c;可以看到matlab常用的函数种类&#xff1a;Anonymous Functions --匿名函数Primary Function…

面向对象的十大原则

面向对象设计原则是OOPS&#xff08;Object-Oriented Programming System&#xff0c;面向对象的程序设计系统&#xff09;编程的核心&#xff0c;但大多数Java程序员追逐像Singleton、Decorator、Observer这样的设计模式&#xff0c;而不重视面向对象的分析和设计。甚至还有经…

php返回支付状态,magento paypal返回支付状态

paypal帐户&#xff0c;帐户类型分为Personal(个人)、Premier(高级)和Business(商业)&#xff0c;他们的差别对于开发者来 说主要是返回的信息&#xff0c;Personal的不能使用IPN和PDT等商家工具&#xff0c;即不能获取交易信息&#xff0c;但是Personal帐户收款无需手续 费&am…

上下文管理、redis发布订阅、RabbitMQ发布订阅、SQLAlchemy

一、上下文管理 import contextlib contextlib.contextmanager def work_state(state_list,worker_thread):state_list.append(worker_thread)try:yieldfinally:state_list.remove(worker_thread) free_list[] current_thread"alex" with work_state(free_list,curr…

php symbol table,gdb方式遍历EG(symbol_table) 哈希表的key_PHP教程

Sara Golemon写过一篇文章&#xff0c;里面提到&#xff1a;“是否存在特别的地方可以找到GLOBALS数组&#xff1f;”答案是“存在”&#xff0c;就是EG(symbol_table)&#xff0d;Executor Globals结构&#xff0c;她也给出了找的具体实例&#xff0c;如下PHP_FUNCTION(confir…

常用快捷键归纳

CtrlX     剪贴 CtrlC    复制 CtrlV    粘贴 CtrlD    删除对应行 CtrlA    全选 CtrlZ    撤销 Alt↑    两行代码互换 CtrlAltX J 运行代码 CtrlshiftO 添加缺少的包&#xff0c; Ctrlshift↓  向下复制本行代码转载于:https://www.cnblogs.c…

php edm 系统,edm.php

// ----------------------------------------------------------------------// | 科创众达// ----------------------------------------------------------------------// | Copyright (c) 2011 http://ctrlcoo.com All rights reserved.// -------------------------------…

jQuery选择id属性带有.点符号元素的方法

如果jquery要选择的元素id中带有点符号&#xff0c;在选择时需要在点前面加上两个反斜杠&#xff0c;如&#xff1a;$("#address\\.street").text("Enter this field");<div id"address.street"> http://www.jb51.net </div> 转载于…

单账户登录踢人 php,踢人下线

前言 在java的世界里&#xff0c;有很多优秀的权限认证框架&#xff0c;如Apache Shiro、Spring Security 等等。这些框架背景强大&#xff0c;历史悠久&#xff0c;其生态也比较齐全。 但同时这些框架也并非十分完美&#xff0c;在前后台分离已成标配的互联网时代&#xff0c;…