• LOJ10201


    题目描述

    原题来自:Codeforces Round #400 B.

    Sherlock 有了一个新女友(这太不像他了!)。情人节到了,他想送给女友一些珠宝当做礼物。

    他买了n  件珠宝。第i  件的价值是 i+1。那就是说,珠宝的价值分别为2,3,4,....,n+1 

    Watson 挑战 Sherlock,让他给这些珠宝染色,使得一件珠宝的价格是另一件的质因子时,两件珠宝的颜色不同。并且,Watson 要求他最小化颜色的使用数。

    请帮助 Sherlock 完成这个简单的任务。

    输入格式

    只有一行一个整数n ,表示珠宝件数。

    输出格式

    第一行一个整数 k,表示最少的染色数;
    第二行 n 个整数,表示第 1 到第 n 件珠宝被染成的颜色。若有多种答案,输出任意一种。

    样例

    样例输入 1

    3
    

    样例输出 1

    2
    1 1 2
    

    样例输入 2

    4
    

    样例输出 2

    2
    2 1 1 2
    

    样例说明

    因为 2 是4  的一个质因子,因此第一件珠宝与第三件珠宝的颜色必须不同。

    数据范围与提示

    对于全部数据,n<=1e5

    _____________________________________________

    每个值和它的质因子不能同色,而质数之间、合数之间是没有颜色限制的,所以,这不就是二分图染色嘛,而且不用染,直接质数一色,和数一色。

    注意,n为1和2的情况,也就是只有2,3两个值,这时只有一种颜色。

    _____________________________________________

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 const ll maxn=100003;
     5 int n;
     6 bool zs[maxn];
     7 
     8 void getss()
     9 {
    10     zs[0]=zs[1]=1;
    11     for(int i=2;i<sqrt(maxn);++i)
    12     {
    13         if(zs[i]==0)
    14         {
    15             for(int j=i*i;j<maxn;j+=i)
    16                 zs[j]=1;
    17         }
    18     }
    19 }
    20 int main()
    21 {
    22     scanf("%d",&n);
    23     getss();
    24     if(n==1)
    25     {
    26         printf("1
    1");
    27     }
    28     else if(n==2)
    29     {
    30         printf("1
    1 1");
    31     }
    32     else
    33     {
    34         printf("2
    ");
    35         for(int i=2;i<n+2;++i)
    36             printf("%d ",zs[i]?2:1);
    37     }
    38     return 0;
    39 }
    View Code
  • 相关阅读:
    Confluence 6 LDAP 服务器配置
    在 Confluence 6 中连接一个 LDAP 目录
    Confluence 6 设置公共访问
    Confluence 6 为站点禁用匿名用户访问
    Confluence 6 为站点启用匿名用户访问
    Confluence 6 配置用户目录
    Confluence 6 设置公共访问备注
    Confluence 6 为空间赋予公共访问
    Confluence 6 更新目录
    Omad群组部署、依赖部署一键解决
  • 原文地址:https://www.cnblogs.com/gryzy/p/11475774.html
Copyright © 2020-2023  润新知