把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

luogu P2312 解方程

题面传送门
数据太大了,所以要hash。
多取几个模数正确性更高。
代码实现:

#include<cstdio>
#define mod 1000000007
using namespace std;
int x,y,z,n,m,k,head,ans[100039],fff;
long long tot,a[100039],now;
char _s;
int main(){
//	freopen("1.in","r",stdin);
	register int i,j;
	scanf("%d%d",&n,&m);
	for(i=0;i<=n;i++) {
		_s=getchar();fff=1;
		while(_s<'0'||_s>'9') {
			if(_s=='-') fff=-1;
			_s=getchar();
		}
		while(_s>='0'&&_s<='9') a[i]=(a[i]*10+_s-48)%mod,_s=getchar();
		a[i]*=fff;
		a[i]=(a[i]+mod)%mod;
	}
	for(i=1;i<=m;i++){
		now=a[n];
		for(j=n-1;j>=0;j--) now=(now*i+a[j])%mod;
		if(!now){
			ans[++head]=i;
		} 
	}
	printf("%d\n",head);
	for(i=1;i<=head;i++) printf("%d\n",ans[i]);
}
posted @ 2020-10-07 13:39  275307894a  阅读(28)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end