Acwing1293. 夏洛克和他的女朋友

news/2024/12/5 8:25:35/

夏洛克有了一个新女友(这太不像他了!)。

情人节到了,他想送给女友一些珠宝当做礼物。

他买了 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

【代码及注释】

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
/*当n>2的时候最小颜色数为2,否则为1*/
int n,st[N];
set<int> primes;
void get_primes(int x)
{for(int i=2;i<=N;i++){if(st[i]==0) {primes.insert(i);for(int j=i+i;j<=N;j+=i){st[j]=1;}}}
}
int main()
{cin>>n;if(n<=2){cout<<1<<endl;for(int i=1;i<=n;i++)cout<<1<<" ";}else{cout<<"2"<<endl;get_primes(n);for(int i=2;i<=n+1;i++){if(primes.count(i))cout<<"1 ";elsecout<<"2 ";}}return 0;
}


http://www.ppmy.cn/news/62486.html

相关文章

算法DAY52 动态规划10 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

300.最长递增子序列 五部曲&#xff1a; 1、dp数组的含义&#xff1a; dp[ i ] : 代表 截至到nums[i] (包括 nums[i]) 的序列中&#xff0c;以nums[i] 结尾的&#xff0c;最长递增子序列的长度。这里强调以nums[i] 结尾&#xff0c;是因为还要跟nums[j]做对比&#xff0c;确定…

106.(cesium篇)cesium椎体旋转

听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <html lang="en"> <

互联网摸鱼日报(2023-05-08)

互联网摸鱼日报&#xff08;2023-05-08&#xff09; InfoQ 热门话题 数据库内核杂谈&#xff08;三十二&#xff09;- 杂谈五周年特别篇 比Python快35000倍&#xff01;LLVM&Swift之父宣布全新编程语言Mojo&#xff1a;编程被颠覆了 李彦宏回应文心一言与ChatGPT差距2个…

【Vue学习笔记4】基于Vue3的Composition API + <script setup>

继续前面的学习笔记。 1. 写一个累加器组件 在 src 下的 components 目录下新建一个 Counter.vue &#xff0c;并在这个文件里写出下面的代码&#xff1a; <template><div><h1 click"add">{{ count }}</h1></div> </template>…

代码随想录刷题-栈与队列-删除字符串中的所有相邻重复项

文章目录 删除字符串中的所有相邻重复项习题栈string实现 删除字符串中的所有相邻重复项 本节对应代码随想录中&#xff1a;代码随想录&#xff0c;对应视频链接为&#xff1a;暂无 习题 题目链接&#xff1a;1047. 删除字符串中的所有相邻重复项 - 力扣&#xff08;LeetCod…

第三章数据链路层

1.数据链路层的概述 1.0地位 数据链路层在网络体系结构中所处的地位 链路(Link)就是从一个结点到相邻结点的一段物理线路&#xff0c;而中间没有任何其他的交换结点。数据链路(Data Link)是指把实现通信协议的硬件和软件加到链路上&#xff0c;就构成了数据链路。数据链路层以帧…

Mac安装docker

一、docker是什么&#xff1f; 1、Docker的三个基本概念: Image(镜像)Container(容器)Repository(仓库) Docker的思想来自于集装箱&#xff0c;集装箱解决了什么问题&#xff1f; 在一艘大船上&#xff0c;可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了&a…

【网络】-- IP协议

应用层&#xff08;http、https&#xff09;&#xff1a; 数据的使用。传输层&#xff08;UDP、TCP&#xff09;&#xff1a;网络通讯的细节&#xff0c;将数据可靠的从A主机跨网络送到B主机。网络层&#xff08;IP&#xff09;&#xff1a;提供一种能力&#xff0c;将数据从A主…