题意简述:数组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. 《算法九》(A星寻路算法)

    A星寻路: 结构:N叉树 直线代价斜线代价:符合勾股定理 代价:每走一步,距离终点所付出的 计算公式:f = g + h + w; f : 当前点到终点的代价 g : 起点到当前点的代价 h : 当前 ...

  2. WeChall_Training: Crypto - Caesar I (Crypto, Training)

    As on most challenge sites, there are some beginner cryptos, and often you get started with the good ...

  3. Windows系统-cmd中的tracert命令

    大部分同学都是用的Linux系统来测试网络命令相关工具,我用Windows10系统来测试tracert.        tracert:也被称为Windows路由跟踪实用程序,在命令提示符(cmd)中 ...

  4. 关于AR眼镜的小结

    根据IDC(International Data Corporation,国际数据公司,IDC是全球著名的信息技术.电信行业和消费科技咨询.顾问和活动服务专业提供商)的报告,2018年AR和VR的产值 ...

  5. Go语言实现:【剑指offer】数组中重复的数字

    该题目来源于牛客网<剑指offer>专题. 在一个长度为n的数组里的所有数字都在0到n-1的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组 ...

  6. C++ map通过key获取value

    c++的map中通过key获取value的方法 一般是value  =map[key],或者另一种迭代器的方式 1.在map中,由key查找value时,首先要判断map中是否包含key. 2.如果不 ...

  7. Centos 下设置静态ip地址

       今天小编遇到了需要设置centos(6.4) 下静态ip地址,下面把详细步骤记录下来. 1> 首先打开这个 vi /etc/sysconfig/network-scripts/ifcfg- ...

  8. 20200118--python学习第十一天

    今日内容 函数小高级 lambda表达式 内置函数 内容回顾 1.函数基本结构 2.参数 形参 基本参数:def func(a1,a2):pass 默认值:def func(a1,a2=123):pa ...

  9. VFP CursorAdapter 起步一(作者:Doug Hennig 译者:fbilo)

    CursorAdapter 类是 VFP 8 中最重要的新功能之一,因为它提供了一种简单易用.接口统一的访问远程数据源方式.在这个月的文章里,Dung Hennig 将向你展示 CursorAdapt ...

  10. 集智学院 “Deep X:Deep Learning with Deep Knowledge”的公开讲座---总结

    人工智能旨在了解人类智能的本质,并创造出能模仿人类智能做出反应的智能机器,目前在一些领域已经取得显著的成功,如AI玩游戏.问答系统.自动驾驶.无人机.机器人.翻译.人脸识别.语音识别等领域.深度学习的 ...