原题链接
夏洛克有了一个新女友(这太不像他了!)。
情人节到了,他想送给女友一些珠宝当做礼物。
他买了 n 件珠宝,第 i 件的价值是 i+1,也就是说,珠宝的价值分别为 2,3,…,n+1。
华生挑战夏洛克,让他给这些珠宝染色,使得一件珠宝的价格是另一件珠宝的价格的质因子时,两件珠宝的颜色不同。
并且,华生要求他使用的颜色数尽可能少。
请帮助夏洛克完成这个简单的任务。
输入格式
只有一行一个整数 n,表示珠宝件数。
输出格式
第一行一个整数 k,表示所使用的颜色数;
第二行 n 个整数,表示第 1 到第 n 件珠宝被染成的颜色。
若有多种答案,输出任意一种。
请用 1 到 k 表示你用到的颜色。
数据范围
1≤n≤105
输入样例1:
3
输出样例1:
2
1 1 2
输入样例2:
4
输出样例2:
2
2 1 1 2

分析:从2-n+1中,如果一个数是另一个数的质因子,这两个数就不同颜色。以下为图论内容:我们把每个数都看成一个点,如果两个数是不同颜色即一个数是另一个数的质因子,那么就把这两个点连起来。这也就引出了这个题的特殊性:所有的边都是一边是质数,一边是合数。这个图就是个二分图,完全可以用高级的二分图染色来解决。那么我们换一个角度想想,依照题意的话,我们完全可以质数都涂一种颜色,合数都涂另一种颜色,这也就完美的符合了题意。

代码如下:

#include<bits/stdc++.h>
using namespace std;
const int N = 100010;
int primes[N], cnt;
bool st[N];
void init(int n)
{for (int i=2; i<= n; i ++ ){if (!st[i]) primes[cnt ++ ] = i;for (int j = 0; primes[j] * i <= n; j ++ ){st[i * primes[j]] = true;if (i % primes[j] == 0) break;}}
}int main()
{int n;cin >> n;init(n + 1);if (n <= 2) puts("1");else puts("2");for (int i = 2; i <= n + 1; i ++ )if (!st[i]) printf("1 ");else printf("2 ");return 0;
}

出自:acwing yxc

夏洛克和他的女朋友(隐藏质数筛)相关推荐

  1. 质数——夏洛克和他的女朋友

    夏洛克和他的女朋友 夏洛克有了一个新女友(这太不像他了!). 情人节到了,他想送给女友一些珠宝当做礼物. 他买了 n 件珠宝,第 i 件的价值是 i+1,也就是说,珠宝的价值分别为 2,3,-,n+1 ...

  2. 夏洛克和他的女朋友—线性筛—逻辑

    输入样例1: 3 输出样例1: 2 1 1 2 输入样例2: 4 输出样例2: 2 2 1 1 2 1.一件珠宝的价格是另一件珠宝的价格的质因子时,两件珠宝的颜色不同,则等价于每一个合数与它的每一个质 ...

  3. poj2739(尺取法+质数筛)

    题意:给你一个数,问这个数能否等于一系列连续的质数的和: 解题思路:质数筛打出质数表:然后就是尺取法解决: 代码: #include<iostream> #include<algor ...

  4. c++入门必学算法 质数筛

    文章目录 一.什么是质数筛 二.暴力枚举 1.暴力枚举基本思想: 2.模板代码 3.运行结果 三.埃氏筛 1.埃氏筛基本思想: 2.模板代码 3.运行结果 四.欧拉筛 1.对比埃氏筛 2.欧拉筛的基本 ...

  5. AcWing1293. 夏洛克和他的女朋友

    1293. 夏洛克和他的女朋友 题目 提交记录 讨论 题解 视频讲解 夏洛克有了一个新女友(这太不像他了!). 情人节到了,他想送给女友一些珠宝当做礼物. 他买了 nn 件珠宝,第 ii 件的价值是  ...

  6. [质数筛] 质数筛算法详解

    今天给大家讲解质数筛这个算法. 在信息竞赛中,我们总是会遇到很多判断质数的题目,那么在这里就由我来给大家讲解一下质数筛算法(这里所有讲的算法都是基于筛出从 1 1 1 到 n n n 之间的素数的算法 ...

  7. AcWing 1293. 夏洛克和他的女朋友(思维 欧拉筛 图论)

    夏洛克有了一个新女友(这太不像他了!). 情人节到了,他想送给女友一些珠宝当做礼物. 他买了 nn 件珠宝,第 ii 件的价值是 i+1i+1,也就是说,珠宝的价值分别为 2,3,-,n+12,3,- ...

  8. 1293. 夏洛克和他的npy(二分图,筛质数)

    原题链接 - AcWing 分析:限制条件/要求,如下 要选择尽可能少的颜色 一件珠宝的价格是另一件珠宝的质因子,两件珠宝颜色不同 1.通过第二个性质我们可以分析出,由于质数必然没有质因子,那么他的颜 ...

  9. [数学/质数筛] 素数筛法

    Date:2019/10/16?? 其实现在都快1点了,算是16号,啊?? 今天讲了素数的筛法 其实,在很小的数据范围内,不同的算法复杂度是差不多的,但是,如果处理几个数据,算法的作用就没有发挥出来 ...

最新文章

  1. html -%3e 转义,特殊字符html,css转义大全
  2. anaconda换源和恢复默认源
  3. 对于enable_shared_from_this、shared_from_this使用笔记
  4. 二元一次函数最值问题_初二上学期,一次函数方案设计最值问题,两类题目解题思路不一样...
  5. 程序员必备软技能之科技趋势(一)
  6. 安卓应用安全指南 5.3.3 将内部账户添加到账户管理器 高级话题
  7. android github 评分控件_「开源」Arcgis for Android测量工具更新至V1.9,新增绘制控件...
  8. curl php 禁用ip6,CentOS 6禁用IPv6解决curl Couldn’t resolve host或dns解析慢
  9. 单通道图像保存_3D图像展示篇结构更清晰
  10. 分治法--二分查找、乘方、斐波那契数
  11. 文件完整性的检测与监控
  12. 对班级网站注册功能中密码输入运用等价类划分法设计测试用例
  13. TASKCTL用户权限如何设置
  14. 2020编程入门先学什么
  15. 如何长久维持远距离恋情?
  16. js逆向案例-zzjg之jy/woff.2
  17. 【动手学习深度学习】01 安装运行环境——Windows
  18. Bayesian Browsing Model 的个人理解
  19. Nehe教程16课雾
  20. 小米狂秀硬核技术!推多项产业AIoT方案,打造智能生活时代

热门文章

  1. Vue——邂逅Vue
  2. 如皋中学2021高考成绩查询,喜报!如皋八所高中高考成绩公布
  3. Joint Coronary Centerline Extraction and Lumen Segmentation from CCTA CNNTracker and Vascular Grap
  4. 工程师评测 | RK3568开发板上手测试
  5. SSM ==> 超市管理系统(mysql)
  6. ViewPager+Fragment添加一行若干小红球滚动指示器指示当前ViewPager翻阅位置(可供第三方使用的类)
  7. mysql查询昨天的日期_MySQL关于时间的一些查询,查询今天,昨天......
  8. java 动态链接_菜鸟提问:java 调用不了Windows动态链接库方式出错
  9. 培养用户的数字化习惯
  10. 基于TensorFlow的歌曲曲风变换