GCD Partition

这道题首先要解决一个问题,要把区间分成几块,可以证明分成两块是更优

首先我们假设把区间分成了m(>= 2)块 b1, b2, b3, ...,bm,则答案是gcd(b1, b2, b3,..., bm),则b1,b2是 gcd(b1, b2, b3,..., bm)的倍数,那么b1 + b2也是gcd(b1, b2, b3,..., bm)的倍数,所以gcd(b1, b2, b3,..., bm)<=gcd(b1 + b2, b3,..., bm),所以依此类推,区间数越少,越优,所以k = 2是最优的

然后我们可以处理一个前缀和,枚举一下分段点,求一下gcd,找出最大值即可

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <cmath> using namespace std;
typedef long long LL;
const int N = 2e5 + 10;
int a[N];
LL s[N]; LL gcd(LL a, LL b)
{
if(b == 0) return a;
return gcd(b, a % b);
} void solve()
{
int n;
cin >> n;
for(int i = 1; i <= n; ++ i)
{
scanf("%d", &a[i]);
s[i] = s[i - 1] + a[i];
}
LL ans = 0;
for(int i = 1; i <= n - 1; ++ i)
ans = max(ans, gcd(s[i], s[n] - s[i]));
cout << ans << endl;
} int main()
{
int t;
cin >> t;
while(t --) solve();
}

codeforces #864 div2 B的更多相关文章

  1. Codeforces #180 div2 C Parity Game

    // Codeforces #180 div2 C Parity Game // // 这个问题的意思被摄物体没有解释 // // 这个主题是如此的狠一点(对我来说,),不多说了这 // // 解决问 ...

  2. Codeforces #541 (Div2) - E. String Multiplication(动态规划)

    Problem   Codeforces #541 (Div2) - E. String Multiplication Time Limit: 2000 mSec Problem Descriptio ...

  3. Codeforces #541 (Div2) - F. Asya And Kittens(并查集+链表)

    Problem   Codeforces #541 (Div2) - F. Asya And Kittens Time Limit: 2000 mSec Problem Description Inp ...

  4. Codeforces #541 (Div2) - D. Gourmet choice(拓扑排序+并查集)

    Problem   Codeforces #541 (Div2) - D. Gourmet choice Time Limit: 2000 mSec Problem Description Input ...

  5. Codeforces #548 (Div2) - D.Steps to One(概率dp+数论)

    Problem   Codeforces #548 (Div2) - D.Steps to One Time Limit: 2000 mSec Problem Description Input Th ...

  6. 【Codeforces #312 div2 A】Lala Land and Apple Trees

    # [Codeforces #312 div2 A]Lala Land and Apple Trees 首先,此题的大意是在一条坐标轴上,有\(n\)个点,每个点的权值为\(a_{i}\),第一次从原 ...

  7. Codeforces #263 div2 解题报告

    比赛链接:http://codeforces.com/contest/462 这次比赛的时候,刚刚注冊的时候非常想好好的做一下,可是网上喝了个小酒之后.也就迷迷糊糊地看了题目,做了几题.一觉醒来发现r ...

  8. codeforces 864 E. Fire(背包+思维)

    题目链接:http://codeforces.com/contest/864/problem/E 题解:这题一看就很像背包但是这有3维限制也就是说背包取得先后也会对结果有影响.所以可以考虑sort来降 ...

  9. codeforces #round363 div2.C-Vacations (DP)

    题目链接:http://codeforces.com/contest/699/problem/C dp[i][j]表示第i天做事情j所得到最小的假期,j=0,1,2. #include<bits ...

  10. codeforces round367 div2.C (DP)

    题目链接:http://codeforces.com/contest/706/problem/C #include<bits/stdc++.h> using namespace std; ...

随机推荐

  1. 【Python】Locust持续优化:InfluxDB与Grafana实现数据持久化与可视化分析

    前言 在进行性能测试时,我们需要对测试结果进行监控和分析,以便于及时发现问题并进行优化. Locust在内存中维护了一个时间序列数据结构,用于存储每个事件的统计信息. 这个数据结构允许我们在Chart ...

  2. Set_HashSet_TreeSet_小记

    Set接口:Set集合继承自Collection集合 Set:底层数据结构是一个哈希表,能保证元素是唯一的,元素不重复!它通过它的子实现了HashSet集合去实例化,HashSet集合底层是HashM ...

  3. linux内核vmlinux的编译过程之 --- vmlinux.o详解(八)

    内核构建系统之所以要在链接 vmlinux 之前,去链接出vmlinux.o.其原因并不是要将 vmlinux.o 链接进 vmlinux,而是要在链接 vmlinux.o 的过程中做完两个动作: e ...

  4. PE文件整体结构解析

    DOS头 在之前,我们已经了解过PE文件的整体结构了,并且我们进行了静动态差异的文件分析,其开头部分就是DOS 部分,包含了DOS MZ文件头和DOS块,那么我们来了解一些DOS部分的结构和其相关意义 ...

  5. 【Azure Event Hub】Event Hub的Process Data页面无法通过JSON格式预览数据

    问题描述 在Event Hub的门户页面中,可以通过Process Data页面查看Event Hub中的数据,但是当使用JSON格式预览时(View in JSON),却出现错误. 消息一: No ...

  6. 用python selenium提取网页中的所有<a>标签中的超级链接地址

    urls = driver.find_elements_by_xpath("//a") for url in urls: print(url.get_attribute(" ...

  7. 秋叶整合包如何安装Python包

    前几天写了一篇<手把手教你在本机安装Stable Diffusion秋叶整合包>的文章,有同学运行时遇到缺少Python Module的问题,帮助他处理了一下,今天把这个经验分享给大家,希 ...

  8. vite — 超快且方便的编译工具

    我们编写的代码,比如 ES6. TypeScript.react 等是不能被浏览器直接识别的,需要通过 webpack .rollup 这样的构建工具来对代码进行转换.编译. 但随着项目越来越大,需要 ...

  9. 树链剖分 | 洛谷 P4114 Qtree1

    前言 题目链接:洛谷 P4114 Qtree1 前置知识:树链剖分 题意 给定一棵树,有修改边权和查询两点之间边权最大值两种操作,对于每个查询输出结果. 解析 已经在前置博客里提到,树链剖分 可以将树 ...

  10. Pandas 使用教程 JSON

    目录 JSON 转换为 CSV 简单 JSON 从 URL 中读取 JSON 数据: 字典转化为 DataFrame 数据 内嵌的 JSON 数据 复杂 JSON Pandas 可以很方便的处理 JS ...