夏洛克和他的女朋友(隐藏质数筛)
原题链接
夏洛克有了一个新女友(这太不像他了!)。
情人节到了,他想送给女友一些珠宝当做礼物。
他买了 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
夏洛克和他的女朋友(隐藏质数筛)相关推荐
- 质数——夏洛克和他的女朋友
夏洛克和他的女朋友 夏洛克有了一个新女友(这太不像他了!). 情人节到了,他想送给女友一些珠宝当做礼物. 他买了 n 件珠宝,第 i 件的价值是 i+1,也就是说,珠宝的价值分别为 2,3,-,n+1 ...
- 夏洛克和他的女朋友—线性筛—逻辑
输入样例1: 3 输出样例1: 2 1 1 2 输入样例2: 4 输出样例2: 2 2 1 1 2 1.一件珠宝的价格是另一件珠宝的价格的质因子时,两件珠宝的颜色不同,则等价于每一个合数与它的每一个质 ...
- poj2739(尺取法+质数筛)
题意:给你一个数,问这个数能否等于一系列连续的质数的和: 解题思路:质数筛打出质数表:然后就是尺取法解决: 代码: #include<iostream> #include<algor ...
- c++入门必学算法 质数筛
文章目录 一.什么是质数筛 二.暴力枚举 1.暴力枚举基本思想: 2.模板代码 3.运行结果 三.埃氏筛 1.埃氏筛基本思想: 2.模板代码 3.运行结果 四.欧拉筛 1.对比埃氏筛 2.欧拉筛的基本 ...
- AcWing1293. 夏洛克和他的女朋友
1293. 夏洛克和他的女朋友 题目 提交记录 讨论 题解 视频讲解 夏洛克有了一个新女友(这太不像他了!). 情人节到了,他想送给女友一些珠宝当做礼物. 他买了 nn 件珠宝,第 ii 件的价值是 ...
- [质数筛] 质数筛算法详解
今天给大家讲解质数筛这个算法. 在信息竞赛中,我们总是会遇到很多判断质数的题目,那么在这里就由我来给大家讲解一下质数筛算法(这里所有讲的算法都是基于筛出从 1 1 1 到 n n n 之间的素数的算法 ...
- AcWing 1293. 夏洛克和他的女朋友(思维 欧拉筛 图论)
夏洛克有了一个新女友(这太不像他了!). 情人节到了,他想送给女友一些珠宝当做礼物. 他买了 nn 件珠宝,第 ii 件的价值是 i+1i+1,也就是说,珠宝的价值分别为 2,3,-,n+12,3,- ...
- 1293. 夏洛克和他的npy(二分图,筛质数)
原题链接 - AcWing 分析:限制条件/要求,如下 要选择尽可能少的颜色 一件珠宝的价格是另一件珠宝的质因子,两件珠宝颜色不同 1.通过第二个性质我们可以分析出,由于质数必然没有质因子,那么他的颜 ...
- [数学/质数筛] 素数筛法
Date:2019/10/16?? 其实现在都快1点了,算是16号,啊?? 今天讲了素数的筛法 其实,在很小的数据范围内,不同的算法复杂度是差不多的,但是,如果处理几个数据,算法的作用就没有发挥出来 ...
最新文章
- html -%3e 转义,特殊字符html,css转义大全
- anaconda换源和恢复默认源
- 对于enable_shared_from_this、shared_from_this使用笔记
- 二元一次函数最值问题_初二上学期,一次函数方案设计最值问题,两类题目解题思路不一样...
- 程序员必备软技能之科技趋势(一)
- 安卓应用安全指南 5.3.3 将内部账户添加到账户管理器 高级话题
- android github 评分控件_「开源」Arcgis for Android测量工具更新至V1.9,新增绘制控件...
- curl php 禁用ip6,CentOS 6禁用IPv6解决curl Couldn’t resolve host或dns解析慢
- 单通道图像保存_3D图像展示篇结构更清晰
- 分治法--二分查找、乘方、斐波那契数
- 文件完整性的检测与监控
- 对班级网站注册功能中密码输入运用等价类划分法设计测试用例
- TASKCTL用户权限如何设置
- 2020编程入门先学什么
- 如何长久维持远距离恋情?
- js逆向案例-zzjg之jy/woff.2
- 【动手学习深度学习】01 安装运行环境——Windows
- Bayesian Browsing Model 的个人理解
- Nehe教程16课雾
- 小米狂秀硬核技术!推多项产业AIoT方案,打造智能生活时代
热门文章
- Vue——邂逅Vue
- 如皋中学2021高考成绩查询,喜报!如皋八所高中高考成绩公布
- Joint Coronary Centerline Extraction and Lumen Segmentation from CCTA CNNTracker and Vascular Grap
- 工程师评测 | RK3568开发板上手测试
- SSM ==> 超市管理系统(mysql)
- ViewPager+Fragment添加一行若干小红球滚动指示器指示当前ViewPager翻阅位置(可供第三方使用的类)
- mysql查询昨天的日期_MySQL关于时间的一些查询,查询今天,昨天......
- java 动态链接_菜鸟提问:java 调用不了Windows动态链接库方式出错
- 培养用户的数字化习惯
- 基于TensorFlow的歌曲曲风变换