题目

链接

题意:给定 $n$ 个整数,去掉其中一个数使得剩下数字的gcd最大,求最大的gcd.($3 \leq n \leq 100000$)

分析

枚举每一个位置,显然每次枚举都计算所有数的gcd存在大量的重复计算,所以先计算出gcd前缀和gcd后缀。$pre \_ gcd[i] = gcd(a_1, a_2, \cdots, a_i),  \ suf \_ gcd[i] = gcd(a_n, a_{n-1}, \cdots, a_{n-i+1})$

 #include<cstdio>
using namespace std; const int maxn = + ;
int n, num[maxn], a[maxn], b[maxn]; int gcd(int a, int b)
{
return b == ? a : gcd(b, a % b);
} int main()
{
int T;
scanf("%d", &T);
while(T--)
{
scanf("%d", &n);
for(int i = ;i < n;i++) scanf("%d", &num[i]); a[] = num[];
for(int i = ;i < n;i++) a[i] = gcd(num[i], a[i-]);
b[] = num[n - ];
for(int i= n-;i >= ;i--) b[n - - i] = gcd(num[i], b[n- i - ]); int ans = -;
if(a[n-] > ans) ans = a[n-];
if(b[n-] > ans) ans = b[n-];
for(int i = ;i < n-;i++)
{
int tmp = gcd(a[i-], b[n--i]);
if(tmp > ans) ans = tmp;
}
printf("%d\n", ans);
}
return ;
}

最新文章

  1. grep 命令过滤配置文件中的注释和空行
  2. Net重温之路一
  3. Python自动化之异常处理
  4. mysql 概念和逻辑架构
  5. bzoj4154
  6. python 数据类型(列表)学习笔记
  7. Cocos2d-x win7下 android环境搭建
  8. As Easy As A+B
  9. 使用XML的五种场合,XML基本规则,XML的术语,结构与语法
  10. 1227: [SDOI2009]虔诚的墓主人
  11. 流处理与消息队列------《Designing Data-Intensive Applications》读书笔记16
  12. Windows安装SVN服务器和客户端
  13. django下的xadmin相关设置
  14. Java框架spring 学习笔记(四):BeanPostProcessor接口
  15. Android-获取Html元素
  16. Python编程练习:简单的闹钟提醒
  17. Win2003不显示移动硬盘、U盘解决方法
  18. php在线编辑本地文件方法共享
  19. Wireshark小技巧
  20. Go编译安装

热门文章

  1. shell top
  2. idea启动tomcat时报错:Error during artifact deployment. See server log for details.
  3. 认识函数(python)
  4. Python之random.seed()用法
  5. Machine概念和获取帮助 【翻译】
  6. 10-MySQlL DBA笔记-基础知识
  7. nginx触屏版跟PC的代理设置
  8. Oracle设置权限和还原数据库
  9. springboot 集成 dubbo(一)简介
  10. 08 redis缓存穿透、缓存雪崩、缓存击穿