码迷,mamicode.com
首页 > 其他好文 > 详细

ZROI T20200720

时间:2020-07-21 00:57:35      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:etc   org   sdi   size   its   color   space   格式   variant   

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\n1\n");
15     else if(n==2) printf("1\n1 1\n");
16     else if(n==3) printf("1\n1 1 2\n");
17     else if(n==4) printf("2\n1 1 2 2\n");
18     else if(n==5) printf("3\n1 1 2 2 3\n");
19     else if(n==6) printf("3\n1 1 2 2 3 3\n");
20     else{
21          printf("4\n");
22          for(int i=1;i<=n;i++)
23          {
24              printf("%d ",((i-1)%4)+1);
25          }
26     }
27     return 0;
28 } 

 

 


ZROI T20200720

标签:etc   org   sdi   size   its   color   space   格式   variant   

原文地址:https://www.cnblogs.com/SuSuSOS/p/13347940.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!