正解:数论

解题报告:

这儿是,传送门qwq

又是很妙的一道题呢,专门用来对付我这种思维僵化了的傻逼的QAQ

首先看题目的数据范围,发现a<=1010000,很大的一个数据范围了呢,那这题肯定不会常规方法做是趴

然后.首先我们思考30pts怎么做,因为这题的主要做法其实就30pts能解决主要问题在于数据范围很大嘛

然后30pts要用个听起来很牛逼其实很亲民的定理--秦九韶定理

我们思考那个算式怎么算嘛,如果最傻逼的,就每次ai×xi然后算一下,一般人应该不会这么傻逼?

然后就想到一个很容易想到的东西,就是变成a+(a+(a+(a+x)*x)*x)*x这样的形式,这样就很简单而且我们可以O(m)地做掉是趴

然后这个东西就是秦九韶定理...所以说只是听起来好像很厉害其实还是比较好想的趴

然后说亲民主要读入优化会用到嘛,实在是天天用啊

接下来考虑更大的怎么做

首先如果实在想不出来了我们可以用高精度拿到点儿部分分(...话说我真的挺想有时间用高精码一发鸭,好久没写高精了...

但是NOIp好像很久没考高精了?我们就先不往这方面想

跑个题嗷,其实今天的话我觉得还是比较好想到正解的,所以说我没有想到还是很不应该,说明思维没有拓展,考试的意义没有最大程度地发挥出来鸭

就是今天不是做T3的时候没有膜法嘛,zsy学长就分享了一个方法--在做的过程中先把答案取膜然后最后输出的时候枚举一下i算出哪个i能满足取膜等于答案就好了!那时候我还觉得很妙来着!这时候居然就忘了!真的太傻逼了我!

对这里就是相同的想法鸭,我们也是对答案取膜如果取膜意义下最后的答案是0说明有很大的可能不取膜也是0对趴,如果不放心的话可以多膜几个数就没问题辣!

这里大概还是能明白的趴?

但是还有一个待解决的问题--a太大了怎么办

然后有个还是比较显然的玩意儿就是说 a*x≡(a%p)*x (mod p)

这个也太显然了?

然后推广一下就可以得到 ai*xi+ai-1*xi-1+...≡(ai%p)*xi+(ai-1%p)*xi-1+....(mod p)

这样的话相当于我们读入优化的时候直接读入的时候对每个a%p就成了,然后如果不放心多开了几个mod就多存到几个数组里就成了

大概就这样?overrrrr

放代码辽

#include<bits/stdc++.h>
using namespace std;
#define ll unsigned long long
#define rp(i,x,y) for(register ll i=x;i<=y;++i)

,mb=,mc=;
ll m,n,cjk,ans[],a[],b[],c[];

inline ll read1()
{
    ;;
    '))ch=getchar();
    ;
    )+(x<<)+(ch^'),ch=getchar();
    return y?x:-x;
}
inline void read2(ll i)
{
    ;
    '))ch=getchar();
    ;
    )+(a[i]<<)+(ch^)+(b[i]<<)+(ch^)+(c[i]<<)+(ch^'))%mc,ch=getchar();
    if(!y)a[i]=-a[i],b[i]=-b[i],c[i]=-c[i];
    return;
}
inline bool check(ll x)
{
    ll ansa=,ansb=,ansc=;
    rp(j,,n){ll i=n-j;ansa=(ansa+a[i]+ma)*x%ma,ansb=(ansb+b[i]+mb)*x%mb,ansc=(ansc+c[i]+mc)*x%mc;}
     && ansb== && ansc==);
}

int main()
{
    n=read1();m=read1();
    rp(i,,n)read2(i);
    rp(i,,m)if(check(i))ans[++cjk]=i;
    printf("%lld\n",cjk);
    rp(i,,cjk)printf("%lld\n",ans[i]);
    ;
}

点我!看!傻逼!灵巧!在线!做题!

洛谷P2312 解方程 [noip2014] 数论的更多相关文章

  1. 2018.11.02 洛谷P2312 解方程(数论)

    传送门 直接做肯定会TLETLETLE. 于是考验乱搞能力的时候到了. 我们随便选几个质数来checkcheckcheck合法解,如果一个数无论怎么checkcheckcheck都是合法的那么就有很大 ...

  2. 洛谷P2312 解方程题解

    洛谷P2312 解方程题解 题目描述 已知多项式方程: \[a_0+a_1x+a_2x^2+\cdots+a_nx^n=0\] 求这个方程在 \([1,m]\) 内的整数解(\(n\) 和 \(m\) ...

  3. 洛谷 P2312 解方程 题解

    P2312 解方程 题目描述 已知多项式方程: \[a_0+a_1x+a_2x^2+\cdots+a_nx^n=0\] 求这个方程在 [1,m][1,m] 内的整数解(\(n\) 和 \(m\) 均为 ...

  4. 洛谷 P2312 解方程 解题报告

    P2312 解方程 题目描述 已知多项式方程: \(a_0+a_1x+a_2x^2+\cdots+a_nx^n=0\)求这个方程在 \([1,m]\) 内的整数解(\(n\) 和 \(m\) 均为正整 ...

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

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

  6. 洛谷 P2312 解方程

    题目 首先,可以确定的是这题的做法就是暴力枚举x,然后去计算方程左边与右边是否相等. 但是noip的D2T3怎么会真的这么简单呢?卡常卡的真是熟练 你需要一些优化方法. 首先可以用秦九韶公式优化一下方 ...

  7. 洛谷P2312解方程

    传送门 思路分析 怎么求解呢? 其实我们可以把左边的式子当成一个算式来计算,从1到 $ m $ 枚举,只要结果是0,那么当前枚举到的值就是这个等式的解了.可以通过编写一个 $ bool $ 函数来判断 ...

  8. 洛谷P2312解方程题解

    题目 暴力能得\(30\),正解需要其他的算法操作,算法操作就是用秦九韶算法来优化. 秦九韶算法就是求多项式的值时,首先计算最内层括号内一次多项式的值,然后由内向外逐层计算一次多项式的值,然后就将求\ ...

  9. 洛谷P2312 解方程(暴力)

    题意 题目链接 Sol 出这种题会被婊死的吧... 首先不难想到暴力判断,然后发现连读入都是个问题. 对于\(a[i]\)取模之后再判断就行了.注意判断可能会出现误差,可以多找几个模数 #includ ...

随机推荐

  1. Java - Calendar类的使用

    今天在写代码时需要用到时间相关的类,一开始,数据库中存的数据类型是timestamp的,所以在Java中就使用了 Timestamp类型,但当调用Timestamp类型的方法时发现,它的很多方法都是d ...

  2. Linux命令之乐--sed

    sed是stream edit的缩写,是处理文本非常重要的工具. 常见用法: 1. 替换文本 1.1 替换文本中的第一处符合的样式 sed 's/pattern/replace_string' fil ...

  3. windowsError错误码详解

    WindowsError的错误代码详解 0操作成功完成. 1功能错误. 2系统找不到指定的文件. 3系统找不到指定的路径. 4系统无法打开文件. 5拒绝访问. 6句柄无效. 7存储控制块被损坏. 8存 ...

  4. 关于VC中的附加进程调试

    今天领导要求在服务端添加一个获取会议参数的功能接口,接口写好后要自己测试,但是没有客户端的源码,只有客户端安装程序和客户端与服务端发送信令的底层库KSYSClient.dll,而我修改了客户端需要底层 ...

  5. 原创:超简单!windows配置NDK开发环境使用JNI

    前段时间看android版的opencv的配置教程时,看到了它的NDK配置方法,感觉简单又不会出错!!! 1.下载NDK,设置NDK路径: 在windows的系统环境变量中添加NDK的路径,环境变量名 ...

  6. js验证checkboxlist是否有选中的项

    function Check() { var cbl = document.getElementById("<%= ddlSurveyCompanyName.ClientID %> ...

  7. Microsoft 设计原则

    在本文中 关于现代设计 技术为本 实现以较少投入取得极大成绩 迅速和流畅 真正实现数字化 合作共赢 相关主题 驱动出色设计的基础 我们相信遵循 Microsoft 设计原则可帮助你构建使用户感到愉悦并 ...

  8. 【CSS系列】height:100%设置div的高度

    一.div设置百分百高度实现描述 在html布局中body内第一个div盒子对象设置100%高度height样式,是无法成功显示100%高度的.这个是因为body高度默认值为自适应的,所以及时设置bo ...

  9. vue经验 - 实战疑点总结

    1.注册全局组件(是一个单vue页面组成的一个组件,而不是现拼的template结构) 结构: 代码:main.js import UserList from './components/UserLi ...

  10. Oracle —— 如何执行SQL文件

    在Command模式下(笔者使用的是 PL/SQL Comand Window),输入 @文件路径\文件名 如: @D:\ORA_SQL\INSERT_SQL.sql