1623:Sherlock and His Girlfriend

时间限制: 1000 ms         内存限制: 524288 KB

【题目描述】

原题来自:Codeforces Round #400 B.

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

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

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

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

【输入】

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

【输出】

第一行一个整数 k,表示最少的染色数;

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

【输入样例】

3

【输出样例】

2
1 1 2

【提示】

样例输入 2

4

样例输出 2

2
2 1 1 2

样例说明

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

数据范围与提示:

对于全部数据,1≤n≤105 。

sol:第一眼看上去很难的样子(然后发现是质因数),于是可知最多分成两类,一类质数,一类非质数

Ps:n+1=2和n+1=3要特判下,因为 2,3两个数可以放一起,于是只有一类

#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{ll s=0;bool f=0;char ch=' ';while(!isdigit(ch)){f|=(ch=='-'); ch=getchar();}while(isdigit(ch)){s=(s<<3)+(s<<1)+(ch^48); ch=getchar();}return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{if(x<0){putchar('-'); x=-x;}if(x<10){putchar(x+'0'); return;}write(x/10);putchar((x%10)+'0');return;
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
const int N=100005;
int n;
bool Bo[N];
int Prime[N];
inline void Get_Prime()
{int i,j;for(i=2;i<=n;i++){if(!Bo[i]) Prime[++*Prime]=i;for(j=1;j<=*Prime&&Prime[j]*i<=n;j++){Bo[Prime[j]*i]=1;if(i%Prime[j]==0) break;}}return;
}
int main()
{int i;n=read()+1;if(n==2) return 0*printf("1\n1\n");if(n==3) return 0*printf("1\n1 1\n");Get_Prime();puts("2");for(i=2;i<=n;i++){W((Bo[i])?(2):(1));}return 0;
}

View Code

转载于:https://www.cnblogs.com/gaojunonly1/p/10425807.html

一本通1623Sherlock and His Girlfriend相关推荐

  1. 《信息学奥赛一本通》提高版题单

    第一部分 基础算法 第 1 章 贪心算法 #10000 「一本通 1.1 例 1」活动安排 #10001 「一本通 1.1 例 2」种树 #10002 「一本通 1.1 例 3」喷水装置 #10003 ...

  2. 一本通提高篇之一句话系列

    [通知] 由于LL喜新厌旧另置新书,这篇博客目测,会无限咕下去 大概会在十月及以后再次拿起 [进度] 20/34 咿呀,还有14章了QwQ 我太蒻了 连一本通都没刷完 是分块哒(^~^) 例题解析请看 ...

  3. 一本通提高篇在线提交地址

    一本通提高篇 1 基础算法 1.1 贪心算法 1.1.1 P2018  [第一章例题1.1]活动安排正确: 9 提交: 17 比率: 52.94 % 1.1.2 P2021 [第一章例题1.2]种树正 ...

  4. 计算机基础及msoffice应用书本,全国计算机等级考试一本通一级计算机基础及MSOffice应用2016年无纸化考试专用...

    图书介绍 全国计算机等级考试一本通一级计算机基础及MSOffice应用2016年无纸化考试专用 全国计算机等级考试命题研究中心,未来教育教学与研究中心 编 出版社: 人民邮电出版社 ISBN:9787 ...

  5. SAP项目各模块简明调研提纲(一本通)

    SAP项目各模块简明调研提纲(一本通) SD-销售/市场管理 1. 围绕总体销售组织.产品和销售业务类型等总体沟通业务和需求目标 2. 结合现有系统的销售计划.销售订单.价格管控.销售物流发货与仓储财 ...

  6. Matlab学习一本通,matlab基础教程

    链接:https://pan.baidu.com/s/1uTCbiRfIxcrt6lmiy6_QlQ  提取码:f2dn  Matlab学习一本通,matlab基础教程 <MATLAB R201 ...

  7. matlab完全自学一本通 pdf,matlab r2014a自学一本通 MATLAB R2014a完全自学一本通 中文pdf扫描版[125MB] 下载-脚本之家...

    MATLAB R2014a完全自学一本通面向MATLAB 的初中级读者,在介绍MATLAB R2014a 集成环境的基础上,对MATLAB 使用中常用的知识和工具进行了详细的介绍,书中各章均提供了大量 ...

  8. 开放下载!《DTS控制台入门一本通》

    简介:零基础快速入门DTS,一书在手,自学无忧,云运维工程师不可错过的匠心之作 本书图文结合,内容通俗易懂,逐层深入,重点内容详细剖析.通过作者透彻而睿智的描述,使读者在阅读本书时可以更加快速的了解到 ...

  9. 2021牛客多校2 - Girlfriend(球体积交)

    题目链接:点击查看 题目大意:空间内有6个点,满足 ∣P1A∣≥k1∣P1B∣,∣P2C∣≥k2∣P2D∣|P_1A|\ge k_1|P_1B|,|P_2C|\ge k_2|P_2D|∣P1​A∣≥k ...

最新文章

  1. Ubuntu查看系统位数及版本
  2. SEO内部链接优化的技巧
  3. PostgreSQL新手入门教程
  4. tcp连接的三次握手
  5. postgresql修炼之道_PostgreSQL内核开发学习资料
  6. halcon/c++接口基础 之异常处理
  7. 【2017-3-2】集合 结构体 枚举
  8. 可视化折线圆形统计图_统计图表的优雅变换:Altair|可视化系列06
  9. 为什么要用dubbo,dubbo和zookeeper关系,简单的dubbo搭建
  10. 超定方程组最小二乘解法——正规方程组求解(matlab代码)
  11. uniapp文件体积超过 500KB报错
  12. 形式语言与自动机_第二章_语言及文法
  13. 跨考中科院计算机 学硕,【20082P】中国科学院大学心理学考研学硕认知神经科学学姐:放弃保研,跨考二战上岸...
  14. 获取位置geolocation 加速度devicemotion 角度deviceorientation
  15. 浅谈HTML页面基本结构
  16. 服务器租用多少钱一年呢?
  17. 关于人工智能的思考--以copilot、openAI为例
  18. 进程和线程的几种通信方式
  19. .md文件是什么?.md如何打开?
  20. 新闻推荐:谷歌新闻、搜狐新闻、今日头条调研分析

热门文章

  1. 二叉树 的建立及遍历 过程
  2. 在程序开发中怎样写SQL语句可以提高数据库的性能
  3. 【恋上数据结构】贪心(最优装载、零钱兑换、0-1背包)、分治(最大连续子序列和、大数乘法)
  4. 【网络安全工程师面试合集】—黑客常用的端口及攻击方法汇总
  5. Linux系统管理(7)——Linux单用户模式详解 及应用场景
  6. [转]Serverless,后端小程序的未来
  7. 移动端报表JS开发示例
  8. sql 临时表_深度分析 | JDBC与MySQL临时表空间的分析
  9. docker 安装mysql_安装docker并使用docker安装mysql
  10. vb.net word 自定义工具栏_Word双面快速简捷打印?