记录编号 463723 评测结果 AAAAAAAAAA
题目名称 [NOIP 2014]解方程 最终得分 100
用户昵称 GravatarCSU_Turkey 是否通过 通过
代码语言 C++ 运行时间 0.608 s
提交时间 2017-10-24 18:10:57 内存使用 1.27 MiB
显示代码纯文本
#include<bits/stdc++.h>//好神奇!考场能拿50就上天了qwq 
#define ll long long
using namespace std;
int n,m;
ll a[10][105],mod[10]={0,10007,13417,16231,19441,22159,27043};
void read(int x){
	char ch=getchar();
	int f=1;
	while(!(ch<='9'&&ch>='0')){
		if(ch=='-')f=-1;
		ch=getchar();
	}
	while(ch<='9'&&ch>='0'){
		for(int i=1;i<=6;i++){
			a[i][x]=a[i][x]*10+ch-'0';
			if(a[i][x]>=mod[i]){
				a[i][x]%=mod[i];
			}
		}ch=getchar();
	}
	for(int i=1;i<=6;i++)a[i][x]*=f;
}
int ans;
bool book[1000006];
int check(ll x,int z){
	ll ans=a[z][n];
	for(int i=n-1;i>=1;i--){
		ans=(ans*x%mod[z]+a[z][i])%mod[z];
	}return ans;
}
int main()
{
	freopen("equationa.in","r",stdin);
	freopen("equationa.out","w",stdout);
	scanf("%d%d",&n,&m);n++;
	for(int i=1;i<=n;i++){
		read(i);
	}
	for(ll i=1;i<=min(mod[1],(ll)m);i++){
		if(!check(i,1)){
			for(int j=i;j<=m;j+=mod[1])book[j]=1,ans++;
		}
	}
	for(ll i=1;i<=m;i++){
		if(!book[i])continue;
		int bo=0;
		for(int j=2;j<=6;j++){
			if(check(i,j)){
				bo=1;break;
			}
		}
		if(bo)book[i]=0,ans--;
	}
	printf("%d\n",ans);
	for(int i=1;i<=m;i++)if(book[i])printf("%d\n",i);
	return 0;
}