​https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1655​

若要使c(n,3)种颜色组合全部出现 则每种颜色出现次数必须相同 即c(n.2)/n==(n-1) 当n为偶数时不符条件 只考虑奇数 令每种颜色的边都平行着放就保证他们永不相交了

 

#include <bits/stdc++.h>
using namespace std;

int main()
{
int t,n,i,cnt,u,v;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
printf("%d\n",n);
if(n%2==0) printf("No solution\n");
else{
for(i=0;i<n;i++){
cnt=n/2,u=i,v=(i-1+n)%n;
while(cnt>0){
printf("%d %d %d ",u+1,v+1,i+1);
cnt--,u=(u+1)%n,v=(v-1+n)%n;
}
}
printf("\n");
}
}
return 0;
}