NOIP-2014 解方程
来源:互联网 发布:淘宝裂帛旗舰店童装 编辑:程序博客网 时间:2024/06/05 04:43
题目描述
已知多项式方程:
求这个方程在[1, m ] 内的整数解(n 和m 均为正整数)
输入输出格式
输入格式:
输入文件名为equation .in。
输入共n + 2 行。
第一行包含2 个整数n 、m ,每两个整数之间用一个空格隔开。
接下来的n+1 行每行包含一个整数,依次为
输出格式:
输出文件名为equation .out 。
第一行输出方程在[1, m ] 内的整数解的个数。
接下来每行一个整数,按照从小到大的顺序依次输出方程在[1, m ] 内的一个整数解。
输入输出样例
输入样例#1:2 10 1-21输出样例#1:11输入样例#2:2 102-31输出样例#2:212输入样例#3:2 10 1 3 2 输出样例#3:0
说明
对于30%的数据:
对于50%的数据:
对于70%的数据:
对于100%的数据:
题目概要
说实话只要语文比我好的应该都看得懂题 ,我都看得懂题,还有谁看不懂
毫不谦虚地挂上自己的中考模考成绩单:
生地体:A 理综:A 文综:A 数学:A 英语:A 语文:D 总成绩:5A1D buff:全校唯一一个5A1D的学生
我想应该没有语文比我弱的了吧
思路
乍一看数据
就觉得正解应该是
美好愿景
要是这题不要求求出所有的解,可以二分m求解,复杂度
但是
这题要求求出所有解,必须枚举每一个解 反正我是想不出什么好方法
既然
现在m的复杂度已经确定了,再看看m=1e6,n岂不是只剩下10的生存空间了,再看看n
看看我们的复杂度
继续
但是我们看到,长度为n的a数组是要求我们输入的啊,所以好像没有什么方法可以把它压到线性复杂度一下吧
接着
我们发现我们只能把时间压成
下面给出概要:
对于一个函数
的复杂度从
但是应该可以看到a数组是一个高精度数字
那该咋办?
于是神奇海螺告诉我们:
这时我们就选择玄学的力量,对于高精度数,我们果断使用读入优化读入高精度,在读入优化时每独一位膜一个大质数,计算ans值时也要不停地膜大质数
至于为什么?
另外,由于我们最终复杂度为O(nm) n=1e2,m=1e6,所以最终要用到卡常技巧
看程序吧
我们惊奇地发现这个程序是可以AC的,所以
#include<bits/stdc++.h>using namespace std;#define rg registertypedef long long ll; //最后千万别忘了开long long,因为这个调了一上午const int mod=1e9+7;template <typename _Tp> inline void read(_Tp &x){ char c11=getchar();x=0;bool booo=0; while(c11<'0'||c11>'9'){if(c11=='-')booo=1;c11=getchar();} while(c11>='0'&&c11<='9'){x=(x*10+c11-'0')%mod;c11=getchar();} //可以试试不膜大质数的结果 if(booo)x=-x; return ;}const int maxn=101;ll a[maxn];int st[1000005],p=0;int n,m;void init();inline bool check(int x){ rg ll sum=0; for(rg int i=n;i>-1;--i) sum=((a[i]+sum)*x)%mod; //这里也要膜大质数 return sum==0;}void work(){ for(rg int i=1;i<=m;++i)if(check(i))st[++p]=i; check(65536); printf("%d\n",p);for(rg int i=1;i<=p;i++)printf("%d\n",st[i]);//压行你咬我啊 return ;}int main(){ // freopen("in","r",stdin); freopen("1.out","w",stdout); init(); work(); return 0;}void init(){ read(n);read(m); for(rg int i=0;i<=n;++i)read(a[i]);}
- NOIP 2014 解方程
- NOIP-2014 解方程
- NOIP 2014 解方程 Hash Hash Hash
- #NOIP 2014#Day.2 T3 解方程
- 【noip 2014】 解方程 tyvj 4059
- [F][2]NOIP 2014 解方程
- CODEVS 3732 解方程 NOIP 2014
- 【NOIP 2014】解方程 hash+秦九韶
- Noip 2014 提高组 解方程
- NOIP 2014 解方程 [模运算][哈希?]
- 【NOIP提高组2014】解方程
- 【noip】解方程 秦九韶算法
- NOIP 2014 D2T3 解方程 Hash大法好
- NOIP 2014 D2T3 解方程 Hash大法好
- [NOIP 2014]解方程 秦九韶算法+质数取模
- Noip 提高组 2014 Day2 T3 解方程 同余系
- [noip 2012] 同余方程
- NOIP 2012 同余方程
- No space in execution regions with .ANY selector matching
- salesnow:钢铁企业的CRM转型之路如何走?
- Android的开发之&java23中设计模式《总结》
- 安哥拉综合题
- gitlab关闭用户注册功能
- NOIP-2014 解方程
- Linux进程管理与调度-之-目录导航
- AngularJS之基础入门
- java反射:java方法反射的基本操作
- 段码液晶屏实现原理及注意事项
- Java基础示例程序
- Web测试点-登录,搜索,翻页,输入框
- Kotlin类和对象 (一)--- 类和继承
- 关于maven项目在windows系统下的搭建