题目大意
构造一个不超过6w次的非0多项式,使得每项系数是非负数且小于k,并使得任意数x代入后模k=0。
扩展欧拉定理
我们知道了扩展欧拉定理。
那么可以直接构造
x2∗ϕ(k)−xϕ(k)
#include<cstdio>
#include<algorithm>
#define fo(i,a,b) for(i=a;i<=b;i++)
#define fd(i,a,b) for(i=a;i>=b;i--)
using namespace std;
typedef long long ll;
const int maxn=30000+10;
int phi[maxn],pri[maxn],ans[maxn*2+10];
bool bz[maxn];
int i,j,k,l,t,n,m,top;
int main(){
phi[1]=1;
fo(i,2,maxn-10){
if (!bz[i]) pri[++top]=i,phi[i]=i-1;
fo(j,1,top){
if ((ll)i*pri[j]>maxn-10) break;
bz[i*pri[j]]=1;
if (i%pri[j]==0){
phi[i*pri[j]]=phi[i]*pri[j];
break;
}
phi[i*pri[j]]=phi[i]*(pri[j]-1);
}
}
scanf("%d",&k);
if (k==1){
printf("-1\n");
return 0;
}
ans[2*phi[k]]=1;
ans[phi[k]]=k-1;
printf("%d\n",2*phi[k]);
fo(i,0,2*phi[k]){
t=ans[i];
t%=k;
(t+=k)%=k;
printf("%d ",t);
}
}