思路:

系数的范围有$10^{10000}$,但是用高精度做显然不现实,因此可以考虑一个类似于“哈希”的做法,
对方程两边同时取模,如果取的模数足够多,正确率就很高了。
中间对多项式的计算可以使用$O(n)$的秦九韶算法。
然而,我的模数试了很多种都不能A,看了题解发现只要对$1000000007$一个数取模就AC了?

 #include<cstdio>
#include<cctype>
const long long mod=;
inline long long getll() {
bool sgn=false;
char ch;
while(!isdigit(ch=getchar())) if(ch=='-') sgn=true;
long long x=ch^'';
while(isdigit(ch=getchar())) x=((((x<<)+x)<<)+(ch^''))%mod;
return sgn?-x:x;
}
const long long N=,M=;
long long n;
long long a[N];
long long ans[M]={};
inline bool check(const long long x) {
long long sum=;
for(long long i=n;i>=;i--) {
sum=(sum*x+a[i])%mod;
}
return sum==;
}
int main() {
n=getll();
long long m=getll();
for(long long i=;i<=n;i++) a[i]=getll();
for(long long i=;i<=m;i++) {
if(check(i)) ans[++ans[]]=i;
}
for(long long i=;i<=ans[];i++) printf("%lld\n",ans[i]);
return ;
}

试了很多个模数都没能AC的代码:

 #include<tuple>
#include<cstdio>
#include<cctype>
inline int getint() {
char ch;
while(!isdigit(ch=getchar()));
int x=ch^'';
while(isdigit(ch=getchar())) x=((((x<<)+x)<<)+(ch^''));
return x;
}
const int mod_size=;
const int mod[mod_size]={,,,,};
inline std::tuple<int,int,int,int,int> gettuple() {
bool sgn=false;
char ch;
while(!isdigit(ch=getchar())) if(ch=='-') sgn=true;
int x[mod_size];
for(int i=;i<mod_size;i++) x[i]=ch^'';
while(isdigit(ch=getchar())) {
for(int i=;i<mod_size;i++) {
x[i]=((((x[i]<<)+x[i])<<)+(ch^''))%mod[i];
}
}
return sgn?std::make_tuple(mod[]-x[],mod[]-x[],mod[]-x[],mod[]-x[],mod[]-x[]):std::make_tuple(x[],x[],x[],x[],x[]);
}
const int N=,M=;
int n;
int a[mod_size][N];
int ans[M]={};
inline bool check(const int x) {
int sum[mod_size];
for(int i=n;i>=;i--) {
for(int j=;j<mod_size;j++) {
sum[j]=(sum[j]*x%mod[j]+a[j][i])%mod[j];
}
}
bool ret=true;
for(int i=;i<mod_size;i++) ret=ret&&!sum[i];
return ret;
}
int main() {
n=getint();
int m=getint();
for(int i=;i<=n;i++) {
std::tuple<int,int,int,int,int> p=gettuple();
a[][i]=std::get<>(p);
a[][i]=std::get<>(p);
a[][i]=std::get<>(p);
a[][i]=std::get<>(p);
a[][i]=std::get<>(p);
}
for(int i=;i<=m;i++) if(check(i)) ans[++ans[]]=i;
for(int i=;i<=ans[];i++) printf("%d\n",ans[i]);
return ;
}

[NOIp2014提高组]解方程的更多相关文章

  1. NOIP2014提高组解方程

    其实没有太难 但是不知道的话想不到 考场上大概有50分吧 #include <iostream> #include <stdio.h> #include <queue&g ...

  2. [NOIP2014] 提高组 洛谷P2038 无线网络发射器选址

    题目描述 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城市的布局为由严格平行的129 条东西向街道和129 条南北向街道所形成的网格状,并且相邻 ...

  3. 刷题总结——飞扬的小鸟(NOIP2014提高组)

    题目: 题目背景 NOIP2014 提高组 Day1 试题. 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面 ...

  4. 垃圾陷阱 && [NOIP2014 提高组] 飞扬的小鸟

    #include<bits/stdc++.h> using namespace std; int d,n,dp[1010]; struct node{int t,f,h;} a[1010] ...

  5. NOIP2014提高组 酱油记

    NOIP考到哪里我就写到哪里好了. 2014/10/12 初赛 下午两点半开始考,我两点就到了.然后看到了QYL,NYZ,CZR等大神,先Orz了再说. 考试开始前,发现考场竟然没几个我认识的,不是按 ...

  6. noip2014 提高组

    T1 生活大爆炸版 石头剪刀布 题目传送门 就是道模拟题咯 #include<algorithm> #include<cstdio> #include<cstring&g ...

  7. NOIP2014提高组 题解报告

    D1 T1 无线网路发射器选址 题目大意:找一个矩形,使其覆盖的目标点最大. 题目过水,直接暴力搞过去,代码就不贴了. 但我TM居然有个地方SB了,调了半天才发现输入有问题: scanf(" ...

  8. 【学术篇】luogu1351 [NOIP2014提高组] 联合权值

    一道提高组的题..... 传送门:题目在这里.... 现在都懒得更自己的blog了,怕是太颓废了_ (:з」∠) _ 好久没做题了,手都生了.(好吧其实是做题方面手太生了) 这题我都不想讲了,把代码一 ...

  9. [NOIP2014] 提高组 洛谷P2312 解方程

    题目描述 已知多项式方程: a0+a1x+a2x^2+..+anx^n=0 求这个方程在[1, m ] 内的整数解(n 和m 均为正整数) 输入输出格式 输入格式: 输入文件名为equation .i ...

随机推荐

  1. H5 Day2 练习

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. html5 canvas 多个填充渐变形状

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. JavaScript 删除 ASP.NET 设置的多值 Cookie 的方法

    需要注意HttpOnly,Path等属性.完整的测试代码: ASPX 代码<%@ Page Language="C#" %> <!DOCTYPE html PUB ...

  4. Linux下内存泄漏工具【转】

    转自:http://www.cnblogs.com/guochaoxxl/p/6970090.html 概述 内存泄漏(memory leak)指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况 ...

  5. 基于Consul的数据库高可用架构【转】

    几个月没有更新博客了,已经长草了,特意来除草.本次主要分享如何利用consul来实现redis以及mysql的高可用.以前的公司mysql是单机单实例,高可用MHA加vip就能搞定,新公司mysql是 ...

  6. zabbix报警Too many processes on zabbix server

    zabbix大量报警,运行进程过多,但实际有部分机器可以忽略,需要关闭相关的报警 Configuration-->Templates找到Template_Linux点该行的 Triggers选择 ...

  7. Python api认证

    本节内容: 基本的api 升级的api 终极版api 环境:Djanao, 项目名:api_auto, app:api 角色:api端,客户端,黑客端 1.基本的api [api端] #api_aut ...

  8. stylus项目知识点

    1.在项目中,引入.sty文件的时候,用来下面方式 @import "~common/stylus/variable.styl" ~ 是stylus的写法,参考https://gi ...

  9. tensorflow实现猫狗大战(分类算法)

    本次使用了tensorflow高级API,在规范化网络编程做出了尝试. 第一步:准备好需要的库 tensorflow-gpu  1.8.0 opencv-python     3.3.1 numpy ...

  10. Java基础87 MySQL数据约束

    1.默认值 -- 创建表student1,设置address字段有默认值 create table student1 ( id int, name ), address ) default '广东省深 ...