https://vjudge.net/contest/179746#problem/F
这题还以为自己做不出。然后多想了之后发现不难。。
代码不太好懂,反正自己构造。。
int a[N];
int vis[N];
int main(){
int T;sf("%d",&T);
int cas=0;
while(T--){
mem(vis,0);mem(a,0);
int n,k;
sf("%d%d",&n,&k);
if((k&1)==0)a[1]=k,a[2]=2*k;
else{
a[2]=k,a[1]=2*k;
a[k+1]=1;vis[1]=1;
}
vis[k]=1;vis[2*k]=1;
int cnt=0;
rep(i,3,n){
if(a[i])continue;
a[i]=++cnt;
while(vis[cnt])a[i]=++cnt;
}
pf("Case #%d:",++cas);
if(a[3]==2&&a[4]==4){
}
for(int i=1;i<=n;++i){
pf(" %d",a[i]);
}
puts("");
}
}