样例输入:
2
2
2 2
4
5 2 3 5
样例输出:
2
5

一丶引入GCD

GDC,即最大公约数。便捷求法如下。

int GCD(int a,int b){return !a?b:GCD( b%a , a );
}

二丶对题面的解析。

我们需要将一个数列分割得到一个最大公约数较大的数列,显然存在N多种割法。同样显然不割的时候GCD最大,也就是本身,但我们需要至少割为两段。

假设我们将一个字符串已经割了N次,现在将他割为N+1次,我们可以论证GCD不会变大,即不变或者变小。将割了N次的N段数列割为N+1段,显然需要从前面的N段中拿出部分数字来组合成新的一段数列,从数列中拿出数字且最后得到的数段依旧连续,我们有两种方式拿。

一,从一个连续数列里面拿,若变成了最大公约数更大的几个数列,那么他们合起来也会满足这个更大的最大公约数,故GCD不会变大。

二,从相邻的两个数列中拿,如果 A,B两个数列分割变成了acb三个数列,且前者的GCD小于后者的GCD,那么我们重新将cb合起来同样满足后来更大的GCD,只能说明AB的割法不优,将AB的割法换成更优的,我们同样可以得出结论,GCD不会随着割数变大而变大。

故这道题便有了解,即分割成2个数列即可,我们用前缀和和后缀和便可以得到这个数列的分割的所有情况,数据量为1e5且a的数据量为1e9,数列和最大为 1e14,我们需要用longlong储存。

代码实现如下

#include<bits/stdc++.h>
using namespace std;long long int s[100005];//前缀和
long long int e[100005];//后缀和
long long int num[100005];//记录数组 long long GCD( long long a , long long b ){return !a?b:GCD( b%a , a );}int main(){int n;cin>>n;while( n-- ){int length;cin>>length;int mem = 0;for ( int k = 0 ; k < length ; ++k ){    cin>>num[k];mem+=num[k];s[k]=mem;}mem = 0;for ( int k = length - 1 ; k >= 0 ; --k ){mem+=num[k];e[k] = mem;}int min = -1;int gcd = 0;for ( int k = 0 ; k < length - 1 ; ++k ){gcd = GCD( s[k] , e[k] - num[k] );if ( gcd > min )min = gcd;}cout<<min<<endl;}}            

CQUPT第十三届ACM网赛 J. 才华横溢 题解相关推荐

  1. CQUPT第十三届ACM网赛 H. 活动图 题解

    输入样例 6 7 3 1 4 1 5 9 1 2 7 1 3 11 2 3 13 3 4 1 3 6 19 4 5 20 5 6 1 输出样例 5 我们需要走遍整张图,故求最小生成树即可,想复杂了. ...

  2. CQUPT第十三届ACM网赛 C 高次OSU题解

    输入样例: 3 3 0.5 0.5 0.5 输出样例: 6.0 (保留一位小数) 代码: #include<bits/stdc++.h>using namespace std;double ...

  3. 记第七届ACM校赛-回忆

    这一次校赛其实是两个月半之前的事情了---4月29日.那天比赛完之后,自己就想当天写写这一次比赛的事,但是由于那天比赛完之后又马上又赶回家,5个小时的比赛加上2个小时的车程,整个人都觉得很累,所以那天 ...

  4. 第十三届 ACM/CCPC 吉林省赛 J. Send Scores Problem

    ACM/CCPC 历届真题 题解目录 Problem J. Send Scores Problem Time Limit: 1000ms Memory Limit: 512MB Description ...

  5. 第十三届NENUACM校赛正式赛总结

    目录 A B C D E F G H I 这次比赛主要是心态稳定,一直坚持不懈地想把题A掉,运气好就好在有很多思维题,我出的题没有用到高级点的算法. 一个点在于自己潜心研究了一点组合数学,其实并没有比 ...

  6. 2016山东省第七届ACM省赛总结

    好久都没更过了 前段时间真是心态不好 状态也不好 都不打算练了 自己堕落了一阵子 醒悟了 感觉还是应该干些正事 加上去北京旅游(lanqiao)待了几天 心情也好多了 啊 自己太水 还要接着干. 好 ...

  7. j-甜甜圈(第十三届icpc河南省赛)

    照常,上题目:J-甜甜圈_河南省第十三届ICPC大学生程序设计竞赛(重现赛) (nowcoder.com) 这种题,就一眼能看出来直接模拟肯定是不行的了 然后比赛的时候三个人就思考了下人生决定跳过 咳 ...

  8. 2016第七届ACM山东省赛

     "题目说的是输出编号.输出编号!!" "好,改好了." "交." 最后两分钟再一次提交了代码. no  -  wrong. 奋战到最后一秒 ...

  9. 山东省第六届ACM省赛总结—— 正式赛篇

    其实没必要搞一个上下篇啊,整的跟写小说似得...不过既然写了,就继续写吧,哈哈╮(╯▽╰)╭ 10号,又起一大早,老师说早上吃完早点就去退房,所以我们大清早的洗漱完就收拾东西了,ZX弟下楼领的早餐券, ...

最新文章

  1. C++反汇编第五讲,认识C++中的Try catch语法,以及在反汇编中还原
  2. 在centos下报错:-bash: apt-get: 未找到命令
  3. 6数组排序的方法_JavaScript数组排序方法
  4. C++虚函数与虚函数表
  5. 文本聚类分析算法_聚类分析算法综述
  6. 基于PyTorch+YOLOv4的口罩佩戴检测,附数据集
  7. 全向轮机器人运动模型及应用分析
  8. ASP.NET 2.0中合并 GridView 的表头单元格
  9. 11月20日取消纸质车票,怎么报销
  10. 曙光计算机能玩游戏吗,曙光英雄怎么在电脑上玩 用模拟器玩曙光英雄电脑版...
  11. php dtu,什么是DTU DTU知识普及基础篇
  12. govqq.com/post/12.html,更新30+!这些学校招生简章已公布!
  13. python用sympy解二元一次方程等数学运算
  14. 宏观经济需求与供给分析之:需求的收入效应、替代效应和需求定律
  15. 操作系统 实验报告 linux 内核,linux操作系统内核实验报告.doc
  16. Codeforces Round #127 (Div. 1) B. Guess That Car! 扫描线
  17. 如果相关不意味着因果,那么什么意味着? ——大数据时代的“因果关系”思辨
  18. mysql建表时错误1075_navicat出现错误1075怎么办
  19. http组成部分_博客的组成部分| 第2部分
  20. 【转】“蚁族” 的生活方式画像

热门文章

  1. 一文详解自动驾驶的动态驾驶任务(DDT) | 自动驾驶系列
  2. MySQL Binlog实现流式实时分析架构
  3. RoBERTa:一种稳健优化BERT的预训练方法
  4. 三菱4轴控制伺服案例,三菱PLC FX3U加三菱1PG定位模块控制4个松下伺服
  5. 淘宝整店商品列表查询接口(店铺所有商品API接口)
  6. 学习linux第一步:Win10与deepin15.5双系统安装心得体会
  7. 十大常用前端UI组件库
  8. Windows To Go:Windows 11 也能 “To Go”(制作教程)
  9. 中国人力资源数字化生态图谱-灵活用工市场
  10. 网络安全态势感知研究综述