锰锌求助

P3599 Koishi Loves Construction

```cpp #include<iostream> #include<bitset> using namespace std; const int N=1e5; int x,t,n; bitset<N+10> isp; int p[N+10],cnt; void Prime() { isp[1]=true; for(int i = 1;i <= N;i++) { if(!isp[i]) p[++cnt]=i; for(int j = 1;j <= cnt&&i*p[j] <= N;j++) { isp[i*p[j]] = 1; } } } int Pow(int a,int x) { int res=1; for(;x;a = 1ll*a*a%n,x>>=1) { if(x&1) res = 1ll*res*a%n; } return res; } void solve2() { if(isp[n]&&(n^1)&&(n^4)) { cout<<0<<endl; return; } else { if(n == 1) { cout<<2<<" "<<1; return; } if(n==4) { cout<<2<<" "<<1<<" "<<3<<" "<<2<<" "<<4; return; } cout<<2; for(int i = 1,tmp = 1,sum = 1;i <= n-1;i++) { cout<<" "<<tmp; tmp = 1ll*Pow(sum,n-2)*(i+1)%n; sum = 1ll*sum*tmp%n; } cout<<" "<<n; cout<<endl; } } int main() { cin>>x>>t; if(x == 2) { Prime(); } if(x == 1) { while(t--) { cin>>n; if((n&1)&&(n^1)) { cout<<0<<endl; continue; } else { cout<<2; for(int i = 1;i <= n;i++) { cout<<" "; if(i&1) { cout<<n+i-1; } else { cout<<i-1; } } cout<<endl; } } } else { while(t--) { cin>>n; solve2(); } } } ```
by IANYE @ 2022-06-12 11:25:31


(这是我大号交的)
by IANYE @ 2022-06-12 11:26:07


|