[BZOJ3751][NOIP2014]解方程(乱搞)

题目:我是超链接

题解:

显然若f(n)≡0(modp),则f(n+p)≡0(modp)。 

所以我们可以选上几个质数,然后check出0-p-1之内的答案,然后由这些答案推出1-m内的答案。选上5个质数就差不多了。(五个质数摘自学姐blog)

代码:

#include 
#include 
using namespace std;
const int Mod[5]={11261,19997,22877,21893,14843};
int ans[1000005],n,m,aa[120],cnt,mi[120];
bool ha[1000005],is[30015];
char a[120][10005];
int pula(int i,int mod)
{
	int ans=0,mq=0,ff=1,j,l=strlen(a[i]);
	if (a[i][mq]=='-') ff=-1,mq++;
    for (j=mq;j=0;j--) aa[j]=pula(j,Mod[i]);
		for (j=0;j


你可能感兴趣的:(乱搞)