#include<bits/stdc++.h>usingnamespace std;#define mod 1000000007#define INF 0x3f3f3f3f#define pi 3.141592654typedeflonglong ll;constint N =1e6+5;int vis[N], a[N],f;intmain(){int t,p;scanf("%d",&t);while(t --){scanf("%d",&p);
a[1]=1; vis[1]=1;
f =0;for(int i =2; i < p; i ++){int a2 = a[i-1]*2%p, a3 = a[i-1]*3%p;if(!vis[a2]){
vis[a2]=1;
a[i]= a2;}elseif(!vis[a3]){
vis[a3]=1;
a[i]= a3;}else{f =1;break;}}if(f)printf("-1\n");else{for(int i =1; i < p-1; i ++)printf("%d ",a[i]);printf("%d\n",a[p-1]);}memset(vis,0,sizeof(vis));}return0;}
A Permutation题意:要求构造一个长度为n排列满足:思路:直接暴力即可#include<bits/stdc++.h>using namespace std;#define mod 1000000007#define INF 0x3f3f3f3f#define pi 3.141592654typedef long long ll;const int N = 1e6+5;int vis[N], a[N],f;int main(){ int t,p;scan