Composite Coloring(思维 数论(筛素数 分解质因数))
(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(思维 数论(筛素数 分解质因数))相关推荐
- [玄学]——数论高级之分解质因数(Pollard_rho)(POJ 1811)
前言 这是一个伤心的故事:我已经好久没有写博客了... 当然这次跟大家分享的是一个很玄学的东西--Pollard_rho 为什么说他很玄学呢?大家可以在等下的代码中看出来(全是rand...) 当然, ...
- 牛客3007E-立方数-欧拉线性筛+素数分解+二分
链接:https://ac.nowcoder.com/acm/contest/3007/E 来源:牛客网 题目描述: 对于给定的正整数 N,求最大的正整数 A,使得存在正整数 B,满足 A3B=N 输 ...
- 算法刷题-数论-质数的判定、分解质因数、筛质数
文章目录 数论 1. 质数 质数的判定---试除法 分解质因数---试除法 筛质数 朴素筛法 埃氏筛法 线性筛法 数论 1. 质数 质数:在大于1的整数中,如果只包含1和它本身这两个约数,那么这个数就 ...
- 质数||素数(分解质因数、筛素数、质数定理)
质数又称素数.一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数,否则称为合数. 规定1既不是质数也不是合数 分解质因数:把一个合数分解成若干个因数乘积的形式 分解质因数(也称分解 ...
- 【数学专题】 筛质数、分解质因数和快速幂
筛质数 质数筛法分为埃氏筛和线性筛. 埃氏筛没有线性筛时间复杂度好,不常用,但是他的时间复杂度分析方法却比较常用. 埃氏筛的时间复杂度为O(nloglogn)≈O(n)O(nloglogn)≈O(n) ...
- 【C素数】素数(质数)和分解质因数
种一棵树最好的时间是十年前,其次是现在 文章目录 判断一个数是否是素数 1-1.基本概念: 1-2.题目描述: 1-3.题解思路: 1-4代码实现 1-4-1方法一:直接flag标记法: 1-4-2方 ...
- 【20181027T1】洛阳怀【推结论+线性筛+分解质因数+GCD性质】
原题:CF402D [错解] 唔,先打个表看看 咦,没有坏质数好像就是质因数个数啊 那有坏质数呢? 好像变负数了 推出错误结论:f(x)=x的质因数个数,如果有个坏质数,就乘上-1 然后乱搞,起码花了 ...
- 素数c分解语言程序,深入分析C语言分解质因数的实现方法
首先来看一个最简单的C语言实现质因数分解的列子: #include void main( ) { int data, i = 2; scanf("%d", &data); ...
- Java分解质因数(每个非素数(合数)都写成几个素数(也可称为质数)相乘的形式)
分解质因数(5分) 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. 现在 ...
最新文章
- java iris_利用K-Means聚类算法实现对iris.data.ulab
- 无穷级数求和7个公式_考研数学闭关修炼习题讲解(16)无穷级数 附(6)补充解释
- MongoDB命令及SQL语法对比
- ASP.NET备份与还原SQL Server数据库
- 18张颠覆三观的照片!
- duration java_Java Duration类| 带示例的dividBy()方法
- nginx自定义日志
- 沙盒技术——selinux控制
- windows7 android 驱动,Windows7安卓刷机驱动安装教程图文详解
- 信息论与编码曹雪虹第三版学习第二章总结
- 表白,整人,无门槛,娱乐代码
- C#几行代码让电脑蓝屏
- 如何高效设计游戏——塔防游戏设计方案
- windows自带录屏_电脑录屏有哪些快捷键?设置帮助电脑快速录屏
- BeanDefinition到Bean
- python阶梯图_不会你还不懂怎么用Python制图吧?师兄教你如何学会绘制漂亮的阶梯图...
- 测试京东万象的Webservice接口
- 服务器内存占用不断的增加 任务管理器(PF使用率)不断的增加:关注句柄数
- Linux基础篇——Linux网络配置(配置网卡、固定IP,固定hostname,终端远程)详解
- linux程序给图片打马赛克,word中给图片打马赛克
热门文章
- java 分层处理解耦_后端分层架构如何解耦?
- CGAL 4.11 官方文档 软件包概述 ——胞腔复形与多面体类
- tableau -- 月销售额年同比增长
- Selenium学习 - 简介
- 端午节用Python教你画绿豆糕
- 2021SCAU数据结构复习(实验1-实验3)
- C# Word文档中插入、提取图片,文字替换图片
- 【研究报告】从单目深度估计到单目三维场景重建-沈春华老师-VALSE Webinar 22-13(总第279期)
- liunx 全盘查找_Linux中查找文件夹的命令
- 对物质导数与拉格朗日视角、欧拉视角之间的关系的粗浅理解