2019.7.9 義烏模擬賽 T2 B
阿新 • • 發佈:2021-07-10
首先根據四色定理這個顏色肯定不超過\(4\)
然後題目中給了\(7\)的樣例是4,然後手推一下\(1\)到\(6\)即可。
然後考慮\(4\)怎麼構造。
容易發現除了\(2\)其它都是奇數。
然後我們對這個東西奇偶染色容易發現上下只要顏色不同即可。
所以上面\(12\)下面\(34\)就好了。
code:
#include<bits/stdc++.h> #define ll long long #define re register #define I inline #define N 100000 #define M 100000 #define W 100000 #define min(a,b) ((a)<(b)?(a):(b)) #define max(a,b) ((a)>(b)?(a):(b)) using namespace std; int n,m,col[N+5]; I void Make(int x){ if(x>6) return; if(x==1) printf("1\n1"); else if(x==2) printf("1\n1 1"); else if(x==3) printf("2\n1 1 2"); else if(x==4) printf("2\n1 1 2 2"); else if(x==5) printf("3\n1 1 2 2 3"); else printf("3\n1 1 2 2 3 3");exit(0); } int main(){ freopen("b.in","r",stdin);freopen("b.out","w",stdout); re int i;scanf("%d",&n);Make(n);printf("4\n"); for(i=0;i*2+1<=n;i++)col[i*2+1]=(i&1)+1; for(i=1;i*2<=n;i++)col[i*2]=(i&1)+3; for(i=1;i<=n;i++) printf("%d ",col[i]); }