Java教程

2019.7.9 义乌模拟赛 T2 B

本文主要是介绍2019.7.9 义乌模拟赛 T2 B,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

首先根据四色定理这个颜色肯定不超过\(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]);
}
这篇关于2019.7.9 义乌模拟赛 T2 B的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!