BNU Online Judge-34777-Magical GCD】的更多相关文章

4052: [Cerc2013]Magical GCD Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 148  Solved: 70[Submit][Status][Discuss] Description 给出一个长度在 100 000 以内的正整数序列,大小不超过 10^12.  求一个连续子序列,使得在所有的连续子序列中,它们的GCD值乘以它们的长度最大.   Input   Output   Sample Input 1 5 30 60…
DP/GCD 然而蒟蒻并不会做…… Orz @lct1999神犇 首先我们肯定是要枚举下端点的……嗯就枚举右端点吧…… 那么对于不同的GCD,对应的左端点最多有log(a[i])个:因为每次gcd缩小,至少变成gcd/2(2是最小的质因数),所以是log个左端点…… 所以我们就有了log段!每段的gcd是相同的.当我们加入一个新的右端点时,除了该节点本身外,不会出现新的左端点,原有的左端点可能会不变,或是两(多)段合并成一段,用滚动数组记一下,暴力搞就可以了……$O(n*log^2n)$ Orz…
/** 题目:Magical GCD UVA 1642 链接:https://vjudge.net/problem/UVA-1642 题意:给定n个数,求使连续的一段序列的所有数的最大公约数*数的数量的值最大.输出这个最大值. 思路: 从左到右枚举一段连续序列时候,同时不断取gcd,会发现gcd相同的部分. gcd的值会随着长度边长非递增变化.最多logx个不同的gcd.那么对于一个长长的序列. 要是可以将相同gcd的一起处理,那么时间就可以优化. 枚举姿势要正确,保证当前枚举的位置,可以利用前…
[BZOJ4052][Cerc2013]Magical GCD Description 给出一个长度在 100 000 以内的正整数序列,大小不超过 10^12.  求一个连续子序列,使得在所有的连续子序列中,它们的GCD值乘以它们的长度最大. Sample Input 1 5 30 60 20 20 20 Sample Output 80 题解:先思考暴力的做法.我们从一个数开始往左扫,将所有使得gcd改变的位置都记录下来.由于gcd的每次改变都至少/2,所以这样的位置不超过log个. 那么我…
[BZOJ4052][Cerc2013]Magical GCD 试题描述 给出一个长度在 100 000 以内的正整数序列,大小不超过 10^12.  求一个连续子序列,使得在所有的连续子序列中,它们的GCD值乘以它们的长度最大. 输入 本题为多组数据. 第一行一个整数 T,表示数据组数. 每组数据第一行为一个整数 n,表示序列长度:第二行为 n 个整数表示序列. 输出 对于每组数据,输出 max{ gcd * length } 输入示例 输出示例 数据规模及约定 见“试题描述” 题解 可以发现…
                              Magical GCD The Magical GCD of a nonempty sequence of positive integers is defined as the product of its lengthand the greatest common divisor of all its elements.Given a sequence (a1, . . . , an), find the largest possibl…
题目 对于一个由正整数组成的序列, Magical GCD 是指一个区间的长度乘以该区间内所有数字的最大公约数.给你一个序列,求出这个序列最大的 Magical GCD. 分析 根据暴力的思想, \(枚举i,枚举j,a[j]=gcd(a[j],a[i])\) 答案就是\(max(a[j]*(i-j+1))\) 显然,当\(a[j]=a[j-1]\)的时候,\(a[j]\)就一定不会更新ans,所以,弄个双向链表,把\(a[j]\)踢掉. #include <cmath> #include &l…
C16H:Magical Balls 总时间限制:  1000ms 内存限制:  262144kB 描述 Wenwen has a magical ball. When put on an infinite plane, it will keep duplicating itself forever. Initially, Wenwen puts the ball on the location (x0, y0) of the plane. Then the ball starts to dup…
以一个数字开头的子序列的gcd种类不会超过logn种,因此去找相同gcd最长的位置,更新一下答案,复杂度O(nlogn^2) #include<cstdio> #include<algorithm> #include<cmath> #define N 300010 using namespace std; int n,i,Log[N],j,l,left,right,mid; ],ans; long long gcd(long long a,long long b) {…
很经典的题目,愣是没做出来.. 题意:给出一个序列,求一子序列,满足其GCD(子序列)* length(子序列)最大. 题解: 类似单调队列的思想,每次将前面所得的最大公约数与当前数进行GCD,若GCD变小,则将原来的最大公约数替换成当前GCD,因为原来的已经不可能取到了. 实现时利用的是STL中的map.另外经WLM牛的指点,得知map在遍历时插入删除是十分危险的操作,最后用滚动map实现. 代码: #include <cstdio> #include <cstring> #in…