ZROI T20200720

Posted sususos

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZROI T20200720相关的知识,希望对你有一定的参考价值。

T1 染色(color)

签到题

题目描述

? 给定 nn,你现在需要给整数 11 到 nn 进行染色,使得对于所有的 1i<jn1≤i<j≤n,若 jij−i 为质数,则 ii 和 jj 不同色。

? 求出颜色尽可能少的染色方案。如果有多种方案,输出任意一种即可。

输入格式

? 第一行一个整数 nn。

输出格式

? 第一行一个整数 kk,表示颜色数。

? 第二行 nn 个整数 colicoli(1colik1≤coli≤k),表示 ii 的颜色。

数据范围

? 对于30%30%的数据,n10

? 对于 60%60% 的数据,n20

? 对于 100%100% 的数据,n104

时空限制

? 时间限制:1s

? 空间限制:128MB

样例输入

7

样例输出

4
1 2 2 3 3 4 1
考虑质数可以分为2和奇质数。 
我们考虑奇偶性染色,便可以满足所有的奇质数。
因为有2的存在,我们必须按照mod 4的方式 染色。
当n小于8的时候爆搜。(我是用特判)
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 inline int read()
 4 {
 5     int x=0;char c=getchar();
 6     for(;!isdigit(c);c=getchar());
 7     for(;isdigit(c);c=getchar()) x=x*10+c-0;
 8     return x;
 9 }
10 int n;
11 int main()
12 {
13     n=read();
14     if(n==1) printf("1
1
");
15     else if(n==2) printf("1
1 1
");
16     else if(n==3) printf("1
1 1 2
");
17     else if(n==4) printf("2
1 1 2 2
");
18     else if(n==5) printf("3
1 1 2 2 3
");
19     else if(n==6) printf("3
1 1 2 2 3 3
");
20     else{
21          printf("4
");
22          for(int i=1;i<=n;i++)
23          {
24              printf("%d ",((i-1)%4)+1);
25          }
26     }
27     return 0;
28 } 

 

 


以上是关于ZROI T20200720的主要内容,如果未能解决你的问题,请参考以下文章

ZROI 19.07.31 AB班ACM

ZROI#960

ZROI#961

ZROI#1004

ZROI1119 十一·联考幸福

ZROI#1006