正题

luogu
CF364D


题目大意

给你一个大小为n的集合,选择一个至少为一半的子集,另其gcd最大


解题思路

由于数字个数很多,考虑随机

随机选10个数,对于每个数,先处理出约数,然后求出所有数和当前数的gcd,这些gcd的约数权值全部加1(权值意义为gcd为这个点,集合最多选多少个点),最后找到最大满足权值大于一半数即可

求出10个数的答案之后求个max即可,因为集合大于一半,所以正确率为 1−12101-\frac{1}{2^{10}}1−2101​

时间复杂度为 O(n+d2)O(n+d^2)O(n+d2),随机的数再多就会TLE了


code

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 1001000
using namespace std;
int n,w,now,v[N];
ll x,ans,a[N],s[N];
void get(ll x)
{w=0;for(ll i=1;i*i<=x;++i)if(x%i==0){w++,s[w]=i,v[w]=0;if(x/i!=i)w++,s[w]=x/i,v[w]=0;}sort(s+1,s+1+w);return;
}
ll gcd(ll x,ll y)
{return (y?gcd(y,x%y):x);
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;++i)scanf("%lld",&a[i]);for(int g=1;g<=10;++g){x=a[rand()*rand()%n+1];get(x);for(int i=1;i<=n;++i){now=lower_bound(s+1,s+1+w,gcd(x,a[i]))-s;v[now]++;}for(int i=1;i<=w;++i)for(int j=i+1;j<=w;++j)if(s[j]%s[i]==0)v[i]+=v[j];for(int i=w;i>0;--i)if(v[i]>=(n+1)/2)ans=max(ans,s[i]);}printf("%lld",ans);return 0;
}

【随机】Ghd(CF364D)相关推荐

  1. ZJOI2019Round#1

    考的这么差二试基本不用去了 不想说什么了.就把这几天听课乱记的东西丢上来吧 这里是二试乱听课笔记ZJOI2019Round#2 ZJOI Round#1 Day1 M.<具体数学>选讲 罗 ...

  2. 批量梯度下降(BGD)、随机梯度下降(SGD)以及小批量梯度下降(MBGD)的理解

    批量梯度下降(BGD).随机梯度下降(SGD)以及小批量梯度下降(MBGD)的理解 </h1><div class="clear"></div> ...

  3. linux ftp随机端口,linuxFTP生产环境配置

    1.ftp采用两个端口控制: A 20端口用于数据传输. B 21端口用于控制,或指建立TCP连接. 2.主动方式连接过程: [注意]:C表示客户端 S表示服务器端 A. S端要开启20.21端口: ...

  4. python random 随机生成一个数

    import random # 0 到 1 之间的随机浮点数 print(random.random()) # 1到20之间随机选取一个整数 print(random.randint(1, 20)) ...

  5. sklearn.model_selection.train_test_split随机划分训练集和测试集

    1 函数用途 train_test_split()是交叉验证中常用的函数,功能是将数组或矩阵按比例随机划分为训练集和测试集,使用方法为: X_train,X_test, y_train, y_test ...

  6. PyTorch 安装和基本运算— Tensor 的数据类型(浮点型、整型、随机浮点型等)、基本运算(绝对值、求和、裁剪、求商、求积、求幂等)、Tensor 与 Numpy 转换

    PyTorch 的安装可以到官网 https://pytorch.org/,选择适合自己机器以及安装方式,执行对应的命令即可. 除了安装 PyTorch 之外,建议也安装 torchvision 包. ...

  7. 利用mysql建立随机森林_随机森林算法实例 - osc_4imme0wh的个人空间 - OSCHINA - 中文开源技术交流社区...

    根据成年人数据集来预测一个人的收入 1.准备数据集 我下载好了一个成年人数据集,从百度云下载 链接:https://pan.baidu.com/s/10gC8U0tyh1ERxLhtY8i0bQ 提取 ...

  8. matlab 信号的原子产生,MATLAB随机产生原子结构代码

    在计算材料学中极少的情况下,我们可能会需要随机产生一个模拟盒子内的原子结构,一般用于测试. 这样说,其实只要rand一个数组就可以了,但是我们又希望这个结构又能够大致满足一些物理上的限制,而不是纯粹数 ...

  9. python生成试卷制卷系统_Python 读写文件 小应用:生成随机的测验试卷文件

    去年学习了python的读写文件部分,了解了python读写的常用模块os.shelve,今天准备把课后作业试着自己做一下 目标:1)生成35份试卷.每个试卷有50道选择题 2)为了防止有学生作弊,需 ...

最新文章

  1. Kubernetes Federation V2搭建(持续更新)
  2. java 选中当前,Java开发网 - 请问如何获得SWT中List widget当前选中的项目
  3. ckeditor 图片上传_关于上传中国鸟类图库和哺乳动物图库物种数量及称号的最新规定...
  4. 初创团队最重要的是什么_我从一家出色的初创公司工作中学到的最重要的教训...
  5. 将联网方式更改为桥接模式
  6. python123第6周答案_Python123测验6: 组合数据类型 (第6周)
  7. 深度模型不work?这有一份超全的Debug检查清单
  8. LeetCode Shortest Distance from All Buildings
  9. Android:随笔—— ConstraintLayout 效率爆表的技巧
  10. c语言增加动态分配的存储空间吗,C语言 关于内存动态分配问题
  11. 大厂退场方式-支付宝-相互宝
  12. Atititjs javascript异常处理机制与java异常的转换.js exception process
  13. 机器学习——逻辑回归算法代码实现
  14. 汇编基础2:看懂汇编
  15. 从端到边缘,无线技术赋能AI边缘计算处理器
  16. 远程桌面协助的计算机名是什么意思,windows远程桌面和远程协助有什么区别
  17. 计算机cpu的字母,电脑处理器后面的字母你认识几个?不认识跟我来学学(intel篇)...
  18. dma-buf 由浅入深(三) —— map attachment
  19. 数字逻辑 | 期末复习 · 基本知识
  20. PCIe转28串口8串口CH384设计注意事项

热门文章

  1. 在python中strip_python中strip()函数怎么用?
  2. python中matplotlib库实例_Python Matplotlib库入门指南
  3. java短信接口 调用_带你了解短信接口的调用
  4. 离线语音识别软件_从音乐识别软件起家,这家公司如何备战车载AI语音市场GGAI对话...
  5. 算法设计与分析——回溯法——符号三角形问题
  6. C++中 Map的了解与基本用法(代码演示+自我总结+map中一对多的用法)
  7. 广西高考成绩查询2021,2021年广西高考个人排名怎么查询,广西高考成绩排名查询方法...
  8. [JavaWeb-HTTP]HTTP概念
  9. C++ 带默认参数值的函数
  10. [Java基础]内部类基础