cf1176D
题意简述:数组a经过一系列操作之后获得数组b,给你数组b,构造出一个满足条件的数组a
操作如下从左到右扫描数组a,如果是一个素数,那么把第这个素数的素数加到数组a中,例如a[1]=2那么加3到数组a当中
如果是一个和数,那么把这个和数的最大因数加进去,这个因数不能等于他本身
只操作N次,N为数组a的长度,操作之后打乱b数组
题解:需要一定的思维,我们考虑一些特殊的值,比如最大值,然后如果是素数,那么说明他是操作1加进去的,然后我们就可以知道是哪个数产生了他
如果不是素数,说明他就是数组a中的数
然后就出来了,另外如果我们去考虑最小值是出不来的,因为情况不止一种
很多问题都可以用这种方式来得到答
int v[maxn+5],prime[maxm],tot;
int Rank[maxn];
void init(){
for(int i=2;i<maxn;i++){
if(!v[i]) v[i]=i,prime[++tot]=i;
for(int j=1;j<=tot && i<=maxn/prime[j];j++){
v[i*prime[j]]=prime[j];
if(i%prime[j]==0) break;
}
}
for(int i=1;i<=tot;i++)
Rank[prime[i]]=i;
}
int cnt[maxn];
int main(){
init();
int n;
cin>>n;
for(int i=0;i<2*n;i++){
int x;
scanf("%d",&x);
cnt[x]++;
}
for(int i=maxn-1;i>=0;i--){
for(int j=0;j<cnt[i];j++){
if(v[i]==i) {
printf("%d ",Rank[i]);
cnt[Rank[i]]--;
}
else {
printf("%d ",i);
cnt[i/v[i]]--;
}
}
}
}
案,就是考虑一些特殊的值,要牢记于心
cf1176D的更多相关文章
随机推荐
- Linux 下tomcat 的重新启动
在 Linux 系统下,重启 Tomcat 如何使用命令操作? 1.首先,进入 Tomcat 的 bin 目录 cd /usr/local/tomcat/bin 2.使用Tomcat关闭命令 ./sh ...
- vscode下搭建vue.js开发环境(基于最新的@Vue/cli 4.2.2)
2020-02-13. 网上的那些怎么安装vue环境的2.x就不要再看了,都过时了,现在去官网下载,按照他们的设置各种问题.接下来看下最新的安装方法. 前四步是一样的: 1.下载并安装vscode 2 ...
- 关于Icon,Image,ImageIcon的简单的对比参考
Icon: Icon位于javax.swing包中,它是一个接口 public interface Icon,介绍为:一个小的固定大小的图片,通常用于装饰组件 有三个方法: int getIconHe ...
- PHP第三方登录——QQ登录
主要内容 简单回顾OAuth协议基本原理 接入QQ登录的前置条件以及开放平台账号申请 引入官方SDK SDK参数配置 SDK核心方法解读 整合QQ登录SDK到Web应用中 SDK优化 调用API的开发 ...
- 【基础】CodeBlocks调试器基本使用方法
CodeBlocks是一个开放源码的全功能的跨平台C/C++集成开发环境. 下载地址:http://www.codeblocks.org/downloads/26 其中,Windows环境下可以使用 ...
- Python Special Methods - 特殊方法
特殊方法 特殊方法的存在是为了给 Python 解释器调用的,通常自己并不需要直接调用它们.也就是说不应该使用 my_object.__len__() 这种写法,而应该使用 len(my_object ...
- Cobalt Strike Bypassing Windows Defender 使用混淆处理
Cobalt Strike – Bypassing Windows Defender 混淆处理 对于所有红色团队成员来说,在交付有效的替代品同时又不拖延延展组织的所有风吹草动始终是一个挑战.就像所有其 ...
- mac 经常使用的快捷键操作
##### touch bar 作用1: 打开项目的一些快捷操作键. 作用2: 右侧的< 打开有一些以前的常规操作. ##### 手势 ##### mac自带的一些操作 cmd + opt + ...
- 干货!手把手教你使用数据可视化BI软件创建企业变更流程监控大屏
灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件. 本文以企业变更流程监控大屏为例 ...
- 来简单说说var,let,const,function,import,class
一.var和let var已经在JavaScript中存在很长一段时间了,但是它存在了一些不足的地方,接下来我们就来看看吧 首先var存在变量提升,这是怎么一回事呢,我们看下面代码 为什么是它呢,是因 ...