题意简述:数组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的更多相关文章

随机推荐

  1. 快速理解 VUEX 原理

    1. vuex 的作用: vuex其实是集中的数据管理仓库,相当于数据库mongoDB,MySQL等,任何组件都可以存取仓库中的数据. 2. vuex 流程和 vue 类比: 我们看一下一个简单的vu ...

  2. kubernetes容器端口设置的坑

    1.使用dockerhub上面的镜像的时候,先到dockerhub上看镜像的相关信息. 2.不能随便修改容器应用的镜像,会出问题.

  3. t-io Java构建p2p网络

    Java 构建p2p网络 这篇文章是一篇关于pbft算法实现的一篇补充文章,但是在这里不会涉及pbft的算法方面,所以可以当做一篇单独的文章食用.如果想查看关于区块链或者PBFT算法的文章,可以参考一 ...

  4. iomanip、cstring、string、sstream

    #include<iomanip>          控   制   符                             作           用                 ...

  5. JavaWeb前置知识 : 动态和静态的区别、两种架构、常见状态码

    JavaWeb程序设计(一) : 前置知识 1.动态网页与静态网页的区别: a.不要和是否有"动感"混为一谈. b.是否随着时间.地点.用户操作的改变而改变 (例如 : 在百度上搜 ...

  6. Python3(十一) 原生爬虫

    一.爬虫实例 1.原理:文本分析并提取信息——正则表达式. 2.实例目的:爬取熊猫TV某个分类下面主播的人气排行 分析网站结构 操作:F12查看HTML信息,Ctrl+Shift+C鼠标选取后找到对应 ...

  7. jq根据table的tr行数动态删除相应的行

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. css position absolute相对于父元素的设置方式

    手机赚钱怎么赚,给大家推荐一个手机赚钱APP汇总平台:手指乐(http://www.szhile.com/),辛苦搬砖之余用闲余时间动动手指,就可以日赚数百元 大家知道css的position abs ...

  9. 对象级别锁 vs 类级别锁(Java)

    前言 对于多线程(并发)和Spring Boot这两块在同步进行学习中,在看到使用synchronized关键字使操作同步时,看到和C#中不一样的东西,所以这里呢,就深入学习了下,若有错误之处,还望指 ...

  10. Java的异常处理机制

    异常 异常指的是,程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止. 由图可知,异常的根类是throwable.其下有两个子类 Error:严重错误Error,无法通过处理的错误,只 ...