由于题目要求所选集合大小要大于等于 $\frac{n}{2}$,所以你随便选一个数至少有一半的概率在集合里.

那么我们就随机选 10 个左右的数,成功率是 $1-\frac{1}{2^{10}}.$

code:

#include<iostream>
#include<cstdio>
#include<time.h>
#include<stdlib.h>
#include<cmath>
#include<algorithm>
#include<cstring>
#define N 1000007
#define ll long long
#define setIO(s) freopen(s".in","r",stdin)
using namespace std;
int n;
ll a[N],ay[N],cnt[N];
int ran() { return (ll)rand()*rand()%n+1; }
ll gcd(ll a,ll b) { return !b?a:gcd(b,a%b); }
int main()
{ // setIO("input");                  srand(time(NULL));scanf("%d",&n);  for(int i=1;i<=n;++i) scanf("%I64d",&a[i]);  ll maxx=0;   for(int T=1;T<11;++T) {int pos=ran(),sz=0; ll x=a[pos];    for(ll i=1;i*i<=x;++i)  {if(x%i==0)  {ay[++sz]=i;    if(x/i!=i) ay[++sz]=x/i;      }} sort(ay+1,ay+1+sz); memset(cnt,0,sizeof(cnt));      for(int i=1;i<=n;++i) {                   int p=lower_bound(ay+1,ay+1+sz,gcd(a[i],x))-ay;         ++cnt[p];    }for(int i=1;i<=sz;++i) {for(int j=i+1;j<=sz;++j) if(a[j]%a[i]==0) cnt[i]+=cnt[j];     }     for(int i=sz;i>=1;--i) if(cnt[i]*2>=n) { maxx=max(maxx,ay[i]); break; } }printf("%I64d\n",maxx);  return 0;
}

  

CF364D Ghd 随机化相关推荐

  1. ZJOI2019一轮游记

    Preface 期待已久的省选终于开始了233,关于之前的一些内容,在ZJOI2019一轮停课刷题记录都可以找到,这里不再赘述 ZJOI2019,Bless All Day -1 今天难得有休息,昨晚 ...

  2. 【随机】Ghd(CF364D)

    正题 luogu CF364D 题目大意 给你一个大小为n的集合,选择一个至少为一半的子集,另其gcd最大 解题思路 由于数字个数很多,考虑随机 随机选10个数,对于每个数,先处理出约数,然后求出所有 ...

  3. poj 2454 Jersey Politics 随机化

    随机化算法+贪心! 将3*k排序后分成3分,将第二第三份的和分别加起来,让和与500*k比较,都大于则输出,否则,随机生成2个数,在第二第三份中交换! 代码如下: #include<iostre ...

  4. BZOJ 2592 随机化(伪)

    思路: 放yousiki大爷题解 http://yousiki.net/index.php/archives/82/ 我写的是随机化 既然gzz证了最终答案的上界是O(N)的 那么我们可以n^2枚举所 ...

  5. 0046算法笔记——【随机化算法】舍伍德随机化思想解决跳跃表问题

    问题描述 如果用有序链表来表示一个含有n个元素的有序集S,则在最坏情况下,搜索S中一个元素需要O(n)计算时间.提高有序链表效率的一个技巧是在有序链表的部分结点处增设附加指针以提高其搜索性能.在增设附 ...

  6. 算法导论Java实现-随机化数组的两种方式(5.3章节)

    package lhz.algorithm.chapter.five; /** * 随机数组两种实现,<算法导论>第五章第三节 * 本文地址:http://mushiqianmeng.bl ...

  7. linux溢出总结+windows aslr地址随机化绕过

    实验一 Linux下缓冲区溢出  通过缓冲区溢出漏洞执行自己的代码  [实验代码]    [实验目的]  通过缓冲区溢出,使其执行not_called函数.  [实验原理及结果]  (1)编译程序(关 ...

  8. 洛谷.4252.[NOI2006]聪明的导游(提答 直径 随机化)

    题目链接 随机化 暴力: 随便从一个点开始DFS,每次从之前得到的f[i]最大的子节点开始DFS.f[i]为从i开始(之前)能得到的最大答案. 要注意的是f[i]应当有机会从更小的答案更新, 9.10 ...

  9. POJ-2531 Network Saboteur 枚举||随机化

    题意:给定一个完全图,现在要求将这个图划分成两个部分,求两个部分的点做笛卡尔积之后的点对的距离和最大值是多少. 解法一:由于给定的点最多只有20个,所以直接2^N*O(n)的时间复杂度枚举即可. 解法 ...

  10. 关闭aslr oracle,地址空间布局随机化 (Address Space Layout Randomization, ASLR)

    地址空间布局随机化 (Address Space Layout Randomization, ASLR) ASLR 是 Oracle Solaris 系统的一种功能,利用此功能可以随机生成进程地址空间 ...

最新文章

  1. POJ-1185 炮兵阵地 动态规划+状态压缩
  2. InChatter系统开源聊天模块前奏曲
  3. 牛客2020年愚人节比赛
  4. 微信+php++证书,php - 微信的商户证书文件怎么用
  5. 通过NHibernate ORM和CodeDom在任何数据库中自动生成表以生成代码
  6. Spring中的bean是否是线程安全的
  7. java 同步线程方式
  8. hibernate 检索策略
  9. mysql 增加临时表空间_数据库临时表空间设置
  10. 网线8芯线各自作用是什么?几种常用的网线定义行业标准
  11. 设计师如何摆脱设计思维的局限
  12. java.lang.NoClassDefFoundError: org/apache/commons/pool2/PooledObjectFactory
  13. 软件开发方法论:TDD、BDD、DDD、ATDD、DevOps
  14. Android 强制设置横屏或竖屏
  15. Android 插件化开发——宿主APP加载APK插件
  16. 9.1.4 用 send2trash 模块安全地删除
  17. webrtc代码走读:发送端NACK和FEC的packet压到队列走读
  18. 微信群怎么没有群管理员这项
  19. gearman 总结
  20. 1.17-1.28中山纪念中学培训总结

热门文章

  1. 阿里云服务器ECS到底是什么?
  2. h5-video3 解决html5 audio iphone,ipd,safari不能自动播放问题
  3. 【人工智能】传教士和野人问题(M-C问题)
  4. 单(两)个正态总体的统计量的分布相关定理
  5. 2017公共DNS服务器评估报告——公共DNS推荐(摘录)
  6. TotalCommander查看文件夹大小和文件夹排序
  7. 关于图片格式的选择,jpg、png、gif、svg
  8. 伦敦大学计算机研究生雅思要求,【留学科普】伦敦TOP10大学雅思要求来了!你够得上吗?...
  9. Android开发地图应用--坐标转换
  10. 用golang从企业微信里获取打卡记录的方法