这个,主要是构成k,2*k然后就是让其他的都互质,主要问题有,k-1,k+1,2k-1,2k+1如果挨着都是2,所以构造让他不能k一定存在(读题没读出来,,,,,搞得没做出来比赛的时候)我写的就是k+1->2k,k->1,2k+1->n
这就是这样
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
int cnt = 1 , t;
scanf("%d",&t);
while(t--){
int n , k;
scanf("%d %d", &n , &k);
printf("Case #%d:",cnt++);
if(n == 1) printf(" 1");
else{
for(int i = k + 1 ; i <= 2*k ; i++)
printf(" %d",i);
for(int i = k ; i >= 1 ; i--)
printf(" %d",i);
for(int i = 2 * k + 1 ; i <= n ; i++)
printf(" %d",i);
printf("\n");
}
}
}