标签:etc org sdi size its color space 格式 variant
签到题
? 给定 nn,你现在需要给整数 11 到 nn 进行染色,使得对于所有的 1≤i<j≤n1≤i<j≤n,若 j−ij−i 为质数,则 ii 和 jj 不同色。
? 求出颜色尽可能少的染色方案。如果有多种方案,输出任意一种即可。
? 第一行一个整数 nn。
? 第一行一个整数 kk,表示颜色数。
? 第二行 nn 个整数 colicoli(1≤coli≤k1≤coli≤k),表示 ii 的颜色。
? 对于30%30%的数据,n≤10;
? 对于 60%60% 的数据,n≤20;
? 对于 100%100% 的数据,n≤104。
? 时间限制: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 }
标签:etc org sdi size its color space 格式 variant
原文地址:https://www.cnblogs.com/SuSuSOS/p/13347940.html