2017.4.25 解方程 思考记录
这个题好乱啊、、n*m就会炸,每个数还都可能是10^10000、、这n*ai tm读进去都要10^6效率 、
一般这种似乎没有任何数论定理的东西范围还这么变态只能考虑随机化算法了。、
似乎可以用取模去试,但n*m还是没法优化、 除了50%的暴力点能跑一跑之外就只能弃疗了、
好吧,这个题需要两种取模,首先读入就要模,,这个模也就意味着你将要在模这个数的意义下找解、、那么找解就1到m枚举就好了。。。
同时可以优化(必须优化)即只需从1到模数 枚举就好了 ,因为p+1 和1 是一样的、、、
统计出在模这几个数之后的可行解之后,怎么在1到m找解?
然后还是枚举,从1到m 就只需看在模这几个数意义下 把枚举的数带入x 看是否成立即可,,所以在上面对模数找解的时候记录一下函数值即可。
其实就是试运气、、 一般这种范围爆炸的数据就考虑随机化好了、
注意:取模的循环性有可能成为优化的点,取模本身可以在一定程度上保留原数的相乘、相加特征、
另外 对一个数取多次模,每个模的合特征就更加接近原数、
码:
#include<iostream>
#include<cstdio>
using namespace std;
#include<cstring>
int mod[6]={9973,9931,9941,9949,9967};
int len,n,i,j,m,zhe[20001][6],ans,shu,res[6][99999],t,cnt,daan[20001],lin[99999];
bool lal;
char ch[20009];
int main()
{scanf("%d%d",&n,&m);n++;for(i=1;i<=n;i++){scanf("%s",ch);len=strlen(ch);for(t=0;t<5;t++){ if(ch[0]=='-')shu=0,lal=1;else shu=ch[0]-'0',lal=0;for(j=1;j<len;j++){shu=(shu*10+(ch[j]-'0'))%mod[t]; } zhe[i][t]=shu;if(lal)zhe[i][t]=-shu; }} for(t=0;t<5;t++){for(i=1;i<mod[t];i++){lin[0]=1;for(j=1;j<=n;j++)lin[j]=(lin[j-1]*i)%mod[t];ans=0;for(j=1;j<=n;j++){ans=(ans+zhe[j][t]*lin[j-1]%mod[t])%mod[t];}res[t][i]=ans;} }for(i=1;i<=m;i++){lal=1;for(t=0;t<5;t++){if(res[t][i%mod[t]]!=0){lal=0;break;}} if(lal)daan[++cnt]=i;}printf("%d\n",cnt);for(i=1;i<=cnt;i++)printf("%d\n",daan[i]); }
2017.4.25 解方程 思考记录相关推荐
- 2017.10.25 打鼹鼠 思考记录
挺直白的dp 离散的是移动的过程,因为经过一番移动一定是为了出现在某个地点 所以直接m^2枚举,类似lis的转移即可 码: #include<iostream> #include<c ...
- 2017.3.25 圆桌聚餐 思考记录
关于此题,无力吐槽 太裸了: 码: #include<iostream> #include<cstdio> using namespace std; #include<c ...
- 2017.3.24 分裂游戏 思考记录
事先说明:这不是好题解,这只是思考记录 同机房的xp都学博弈了.. 感觉还是学学看吧 先来看一下简单的nim: 题目: Alice和Bob放置了N堆不同的石子,编号1..N,第i堆中有A[i]个 ...
- 2017.9.28 约数研究 思考记录
这个题一开始可能会想复杂, 然而它需要对答案的贡献进行归类 可以发现,一个约数对其倍数的数贡献是一样的,,所以可以考虑离散 所以直接对于每个数不好求,就可以考虑每个约数的贡献 而每个约数i就有n/i个 ...
- 2017.5.9 货车运输 思考记录
这题用最水的方法过了. 只要是多源最短路.最长路.除了floyd,还有生成树.. 对于询问只需要一个一个往上走,直到相同,,若没有出现过这个点,就输出-1::: 然而感觉树链剖分+rmq可以搞,但权值 ...
- 2017.3.6 地精部落 思考记录
其实这个题第一眼是没有任何思路的 强行无视题解,经过漫长的找规律,终于推出了一个可行的方法: f[i][0/1]i表示最高位的数字,0表示开始是上升,1表示开始是下降. 为什么会推出这个? 1.因为所 ...
- 2017.10.24 上升序列 思考记录
终于有会做的题了... 一开始想用正常的lis ,然后从前往后扫, 由于最优查询区间在序列上是按顺序单调递增的,所以想记录每个点取哪个值跳到哪,这样是n*m logn的 然后发现既然是单调递增的那直接 ...
- 2017.10.7 括号序列 思考记录
这个题看起来很简单,但细节比较麻烦.参考完别人的代码后才想出自己的解法的.. 一开始认为已匹配的括号是可以直接消的,所以就只维护了两个变量 但还有区间取反.. 由于和已配对的括号的顺序有关,所以不是很 ...
- 2017.9.5 能量采集 思考记录
第一个自己搞出来的反演题. 相比于上一个题,这个题简直和善 直接反演搞,最后一步还不用化简.. 这题放到现在出估计全场都A了 和bzoj3309相比,它只是第一步. 而正解是phi.. 码: #inc ...
最新文章
- python如何编程-编程零基础应当如何开始学习 Python?
- 简单排序:直接插入排序
- GitHub上值得关注的iOS开源项目
- 征集活动 | PMCAFF八周年,十万产品经理送祝福
- 大白话说Java泛型:入门、使用、原理
- 一个蚂蚁前端程序员,曾经的辛酸面试历程
- ENSP配置 实例十一 综合实验
- android 学习之URI
- 使用Linux快速使用redis集群
- 2021十大运动蓝牙耳机品牌推荐,平价真无线蓝牙耳机运动无拘束
- 测试页能打印 软件不能打,Windows7分享打印机能打测试页打印文件怎么没反应
- 【BFS】大胖子走迷宫
- AI论文下载-AAAI ACCV AISTATS COLT CVPR ECCV ICCV ICLR ICML IJCAI JMLR NeurIPS WACV等
- 计算机硬盘sata,sata硬盘是什么
- 使用源码编译安装AMD ROCm
- Mac Catalina(10.15.2) 2K外接屏幕分辨率适配
- steam你画我猜中文版
- D1Android-钢琴模拟实现
- python@jit
- 「题解」LeetCode 顺时针打印矩阵
热门文章
- leetcode71 (2022.1.6)
- anaconda安装好tensorflow后,无法在jupyter notebook上使用的解决方法
- c++实验4—项目6输出星号图
- FPGA _Verilog HDL_计数器实现数字钟60秒计数设计实验
- python生成列表_python列表生成器与生成器
- python运行input不出结果_Python中print和input调用了Python中底层的什么方法
- Spark 配置指南
- 4广联达4代锁安装6.0_Aspen Plus 8.4 软件安装教程
- 且用计算机语言怎么表示,用计算机语言表示算法.doc
- 交通仿真软件测试自学,[2018年最新整理]各类交通仿真软件综合介绍.docx