染色问题 51Nod - 1655

xiaoxiao2025-04-18  12

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; }

 

转载请注明原文地址: https://www.6miu.com/read-5028592.html

最新回复(0)