算法提高之夏洛克和他的女朋友

算法提高之夏洛克和他的女朋友

  • 核心思想:筛质数

    • 因为质因子与其合数不能为同一个颜色
    • 所以将质数分一组 合数分一组 那么一定符合要求
    • 结果颜色数量<=2:在n<=2时为1种颜色 >2时为2种颜色
cpp 复制代码
  #include <iostream>
  #include <cstring>
  #include <algorithm>
  
  using namespace std;
  const int N = 100010;
  
  int prime[N],cnt;
  bool st[N];
  
  void get_prime(int n)
  {
      for(int i=2;i<=n;i++)
      {
          if(!st[i]) prime[cnt++] = i;
          for(int j=0;prime[j] * i <= n;j++)
          {
              st[prime[j]*i] = true;
              if(i % prime[j] == 0) break; 
          }
      }
  }
  
  int main()
  {
      int n;
      cin>>n;
      get_prime(n+1);
      if(n<=2) cout<<1<<endl;
      else cout<<2<<endl;
      for(int i=2;i<=n+1;i++)
      {
          if(st[i]) cout<<"2 ";
          else cout<<"1 ";
      }
  }
相关推荐
副露のmagic5 分钟前
数组章节 leetcode 思路&实现
算法·leetcode·职场和发展
荣光属于凯撒9 分钟前
P2176 [USACO11DEC] RoadBlock S / [USACO14FEB] Roadblock G/S
算法·图论
雨季mo浅忆22 分钟前
记录利用Cursor快速实现拖拽式问卷题型创建
算法
321.。29 分钟前
Linux 进程控制深度解析:从创建到替换的完整指南
linux·开发语言·c++·学习
Yzzz-F34 分钟前
2018-2019 ACM-ICPC, Asia Dhaka Regional ContestC[数论]
算法
小Tomkk39 分钟前
怎么配置 Visual Studio Code 配置 C/C++
c语言·c++·vscode
Frostnova丶41 分钟前
LeetCode 3474. 字典序最小的生成字符串
算法·leetcode·职场和发展
REDcker41 分钟前
Nagle 算法与 TCP_NODELAY、TCP_CORK 详解
网络·tcp/ip·算法
CheerWWW43 分钟前
C++学习笔记——枚举、继承、虚函数、可见性
c++·笔记·学习
比昨天多敲两行1 小时前
C++ AVL树
开发语言·c++