标签:多个 main 暴力枚举 type inline name ack 保险 getchar
秦九韶算法+暴力枚举
因为系数是高精度,所以我们可以取模,模越多个越保险,但是一个就够了。
#include<bits/stdc++.h> using namespace std; const int mod=1e9+7; typedef long long ll; vector<int> ans; int n,m; ll a[105]; bool qjx(int x){ ll sum=0; for(int i=n;i>=1;i--) sum=((sum+a[i])*x)%mod; sum=(sum+a[0])%mod;//注意倒序 return sum==0; } inline ll read(){ ll sum=0,fg=1; char c=getchar(); while(!isdigit(c)){ if(c==‘-‘)fg=-1; c=getchar(); } while(isdigit(c)){ sum=(sum*10+c-‘0‘)%mod; c=getchar(); } return sum*fg; } int main(){ scanf("%d %d",&n,&m); for(int i=0;i<=n;i++) a[i]=read(); for(int i=1;i<=m;i++) if(qjx(i)) ans.push_back(i); if(ans.empty())return cout<<0<<endl,0; printf("%d\n",ans.size()); for(int i=0;i<ans.size();i++) printf("%d\n",ans[i]); return 0; }
标签:多个 main 暴力枚举 type inline name ack 保险 getchar
原文地址:https://www.cnblogs.com/coder-cjh/p/11373715.html