BZOJ 4052 Cerc2013 Magical GCD
2015-05-05 13:19
323 查看
题目大意:给定一个序列,求一个连续子序列,使得序列长度*GcdGcd最大
考虑以某个位置结尾的所有连续子序列,我们会发现不同的GcdGcd不会超过log2nlog_2n个
于是暴力即可= =
考虑以某个位置结尾的所有连续子序列,我们会发现不同的GcdGcd不会超过log2nlog_2n个
于是暴力即可= =
[code]#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define M 100100 using namespace std; int n; long long a[M],ans; pair<int,long long> stack[20],_stack[20]; int top; void Initialize() { ans=0; top=0; } int main() { int T,i,j; for(cin>>T;T;T--) { Initialize(); scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%lld",&a[i]); stack[++top]=make_pair(i,0); for(j=1;j<=top;j++) stack[j].second=__gcd(stack[j].second,a[i]); int temp=0; for(j=1;j<=top;j++) if(j==1||stack[j].second!=stack[j-1].second) _stack[++temp]=stack[j]; memcpy(stack,_stack,sizeof stack); top=temp; for(j=1;j<=top;j++) ans=max(ans,stack[j].second*(i-stack[j].first+1)); } printf("%lld\n",ans); } return 0; }
相关文章推荐
- bzoj 4052: [Cerc2013]Magical GCD
- 【BZOJ】【4052】【CERC2013】Magical GCD
- bzoj 4052: [Cerc2013]Magical GCD
- 【BZOJ4052】【Cerc2013】Magical GCD 单调栈
- bzoj 4052: [Cerc2013]Magical GCD 暴力
- 【数论】【暴力】bzoj4052 [Cerc2013]Magical GCD
- 【BZOJ 4052】[Cerc2013]Magical GCD 暴力+gcd
- 【bzoj4052】[Cerc2013]Magical GCD 暴力
- 【BZOJ4052】[Cerc2013]Magical GCD 乱搞
- 【CERC2013】bzoj4052 Magical GCD
- [Cerc2013]Magical GCD
- BZOJ 4052 Magical GCD
- bzoj 4052: [Cerc2013]Magical GCD
- 【CERC2013】【BZOJ4052】Magical GCD
- BZOJ 4052: [Cerc2013]Magical GCD
- BZOJ 4052: [Cerc2013]Magical GCD
- BZOJ 4488/4052 gcd
- 4052: [Cerc2013]Magical GCD
- 4052: [Cerc2013]Magical GCD/4488: [Jsoi2015]最大公约数
- BZOJ 3122: [Sdoi2013]随机数生成器 ex_gcd+BSGS