(29条消息) CodeForces - 1332B Composite Coloring(数论+构造)_Frozen_Guardian的博客-CSDN博客 (29条消息) codeforces 1332B Composite Coloring 水 贪心_csu_xiji的博客-CSDN博客

复合着色 - CodeForces 1332B - 虚拟判断仪 (csgrandeur.cn)

我算是发现了,每次cf的题说gcd大多少往找规律的方向去想,一般不会让你去求gcd,多往自己学过的知识去想

题意:你有最多11种颜色,给你一个数列,对于数列中的值,每个数都是合数,如果gcd(x,y)>1,那么可以被涂成一种颜色,而其他情况必须涂不同的颜色,问把数组中元素涂满颜色的方案(题目表示可行)

数据范围:

这题的数据范围决定了我们可以暴力解每个数的最小因数(1000的数据量真的是太少了)

gcd(x,y)>1,x,y是合数,那么它们必将被同一个数整除,我们将所有被相同数除的用同一种颜色涂,记录一下,不同的用不同颜色涂

分解质因数

#include<bits/stdc++.h>
#define x first
#define gcfx main
#define y second
#define mak make_pair
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define debug(a) cout<<a<<'\n'
#define endl '\n'
#define umap unordered_map
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> PII;
const int N=2e3+10,M=1,inf=0x3f3f3f3f,mod=1e9+7;
int t;
int n,a[N];void solve()
{cin>>n;int cnt=0;map<int,int> mp;int x; for(int i=1;i<=n;i++){cin>>x;for(int j=2;j<=x;j++){if(x%j==0){if(mp[j]) a[i]=mp[j];else mp[j]=a[i]=++cnt;break;}}}cout<<cnt<<endl;for(int i=1;i<=n;i++) cout<<a[i]<<" ";cout<<endl;
}int gcfx()
{IOS;cin>>t;while(t--) solve();return 0;
}

筛素数

#include<bits/stdc++.h>
#define x first
#define gcfx main
#define y second
#define mak make_pair
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define debug(a) cout<<a<<'\n'
#define endl '\n'
#define umap unordered_map
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> PII;
const int N=2e3+10,M=1,inf=0x3f3f3f3f,mod=1e9+7;
int t;
int n,a[N],cnt;
int prime[100];
int st[N];
bool is_prime(int n)
{if(n<2) return false;for(int i=2;i<=n/i;i++){if(n%i==0) return false;}return true;
}
int gcd(int a,int b)
{return b? gcd(b,a%b):a;
}
void solve()
{cin>>n;int x,res=0;;memset(st,0,sizeof(st));for(int i=1;i<=n;i++){cin>>x;for(int j=1;j<=cnt;j++){if(x%prime[j]==0){if(!st[prime[j]]){st[prime[j]]=++res;}a[i]=st[prime[j]];break;}}}cout<<res<<endl;for(int i=1;i<=n;i++){cout<<a[i]<<" ";}cout<<endl;
}int gcfx()
{IOS;for(int i=2;cnt<11;i++){if(is_prime(i)) prime[++cnt]=i;}
//  cout<<cnt<<endl;
//  for(int i=1;i<=cnt;i++) cout<<prime[i]<<" ";cout<<endl; cin>>t;while(t--) solve();return 0;
}

END

Composite Coloring(思维 数论(筛素数 分解质因数))相关推荐

  1. [玄学]——数论高级之分解质因数(Pollard_rho)(POJ 1811)

    前言 这是一个伤心的故事:我已经好久没有写博客了... 当然这次跟大家分享的是一个很玄学的东西--Pollard_rho 为什么说他很玄学呢?大家可以在等下的代码中看出来(全是rand...) 当然, ...

  2. 牛客3007E-立方数-欧拉线性筛+素数分解+二分

    链接:https://ac.nowcoder.com/acm/contest/3007/E 来源:牛客网 题目描述: 对于给定的正整数 N,求最大的正整数 A,使得存在正整数 B,满足 A3B=N 输 ...

  3. 算法刷题-数论-质数的判定、分解质因数、筛质数

    文章目录 数论 1. 质数 质数的判定---试除法 分解质因数---试除法 筛质数 朴素筛法 埃氏筛法 线性筛法 数论 1. 质数 质数:在大于1的整数中,如果只包含1和它本身这两个约数,那么这个数就 ...

  4. 质数||素数(分解质因数、筛素数、质数定理)

    质数又称素数.一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数,否则称为合数. 规定1既不是质数也不是合数 分解质因数:把一个合数分解成若干个因数乘积的形式 分解质因数(也称分解 ...

  5. 【数学专题】 筛质数、分解质因数和快速幂

    筛质数 质数筛法分为埃氏筛和线性筛. 埃氏筛没有线性筛时间复杂度好,不常用,但是他的时间复杂度分析方法却比较常用. 埃氏筛的时间复杂度为O(nloglogn)≈O(n)O(nloglogn)≈O(n) ...

  6. 【C素数】素数(质数)和分解质因数

    种一棵树最好的时间是十年前,其次是现在 文章目录 判断一个数是否是素数 1-1.基本概念: 1-2.题目描述: 1-3.题解思路: 1-4代码实现 1-4-1方法一:直接flag标记法: 1-4-2方 ...

  7. 【20181027T1】洛阳怀【推结论+线性筛+分解质因数+GCD性质】

    原题:CF402D [错解] 唔,先打个表看看 咦,没有坏质数好像就是质因数个数啊 那有坏质数呢? 好像变负数了 推出错误结论:f(x)=x的质因数个数,如果有个坏质数,就乘上-1 然后乱搞,起码花了 ...

  8. 素数c分解语言程序,深入分析C语言分解质因数的实现方法

    首先来看一个最简单的C语言实现质因数分解的列子: #include void main( ) { int data, i = 2; scanf("%d", &data); ...

  9. Java分解质因数(每个非素数(合数)都写成几个素数(也可称为质数)相乘的形式)

    分解质因数(5分) 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. 现在 ...

最新文章

  1. java iris_利用K-Means聚类算法实现对iris.data.ulab
  2. 无穷级数求和7个公式_考研数学闭关修炼习题讲解(16)无穷级数 附(6)补充解释
  3. MongoDB命令及SQL语法对比
  4. ASP.NET备份与还原SQL Server数据库
  5. 18张颠覆三观的照片!
  6. duration java_Java Duration类| 带示例的dividBy()方法
  7. nginx自定义日志
  8. 沙盒技术——selinux控制
  9. windows7 android 驱动,Windows7安卓刷机驱动安装教程图文详解
  10. 信息论与编码曹雪虹第三版学习第二章总结
  11. 表白,整人,无门槛,娱乐代码
  12. C#几行代码让电脑蓝屏
  13. 如何高效设计游戏——塔防游戏设计方案
  14. windows自带录屏_电脑录屏有哪些快捷键?设置帮助电脑快速录屏
  15. BeanDefinition到Bean
  16. python阶梯图_不会你还不懂怎么用Python制图吧?师兄教你如何学会绘制漂亮的阶梯图...
  17. 测试京东万象的Webservice接口
  18. 服务器内存占用不断的增加 任务管理器(PF使用率)不断的增加:关注句柄数
  19. Linux基础篇——Linux网络配置(配置网卡、固定IP,固定hostname,终端远程)详解
  20. linux程序给图片打马赛克,word中给图片打马赛克

热门文章

  1. java 分层处理解耦_后端分层架构如何解耦?
  2. CGAL 4.11 官方文档 软件包概述 ——胞腔复形与多面体类
  3. tableau -- 月销售额年同比增长
  4. Selenium学习 - 简介
  5. 端午节用Python教你画绿豆糕
  6. 2021SCAU数据结构复习(实验1-实验3)
  7. C# Word文档中插入、提取图片,文字替换图片
  8. 【研究报告】从单目深度估计到单目三维场景重建-沈春华老师-VALSE Webinar 22-13(总第279期)
  9. liunx 全盘查找_Linux中查找文件夹的命令
  10. 对物质导数与拉格朗日视角、欧拉视角之间的关系的粗浅理解