[BZOJ4488][JSOI2015]最大公约数 DP+STL
来源:互联网 发布:华康字体淘宝可以用吗 编辑:程序博客网 时间:2024/06/18 17:47
一个数的约数大概是log级的,那么右端点确定的若干区间的gcd最多也只有log种。显然,右端点确定时,随着左端点递增,gcd是不降的。
从左往右DP,对于每种以当前点为右端点的区间gcd的取值,记录左端点最左可以延伸到哪。用map搞个映射就好了。复杂度O(nlog^2n)
代码:
#include<iostream>#include<cstdio>#include<cstring>#include<map>#define ll long long#define chkmax(a,b) a=max(a,b)#define chkmin(a,b) a=min(a,b)using namespace std;typedef map<ll,int> mpli;int n;ll a[100010],ans;mpli mp,tmp;mpli::iterator it;ll gcd(ll a,ll b){ if(a<b) swap(a,b); if(!b) return a; else return gcd(b,a%b);}int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%lld",&a[i]); for(int i=1;i<=n;i++) { chkmax(ans,a[i]); for(it=mp.begin();it!=mp.end();it++) { ll g=gcd(a[i],it->first); chkmax(ans,g*(i-it->second+1)); if(tmp.count(g)==0) tmp[g]=it->second; else chkmin(tmp[g],it->second); } if(tmp.count(a[i])==0) tmp[a[i]]=i; mp=tmp; tmp.clear(); } printf("%lld",ans); return 0;}
阅读全文
0 0
- [BZOJ4488][JSOI2015]最大公约数 DP+STL
- 【bzoj4488: [Jsoi2015]最大公约数】性质题
- bzoj 4488: [Jsoi2015]最大公约数
- bzoj 4488: [Jsoi2015]最大公约数
- 4052: [Cerc2013]Magical GCD/4488: [Jsoi2015]最大公约数
- [BZOJ]4488: [Jsoi2015]最大公约数 结论暴力
- [bzoj4472][Jsoi2015]salesman 树形DP
- JSOI2015
- bzoj 4472: [Jsoi2015]salesman 树形dp
- BZOJ4472[Jsoi2015] salesman 解题报告【树形DP】
- [BZOJ4475][JSOI2015]子集选取(DP+结论)
- 1040 最大公约数之和 (STL)
- JSOI2015 day1
- 【JSOI2015】非诚勿扰
- codevs 1297 硬币 DP+STL
- 记JSOI2015第一轮
- [JSOI2015][JZOJ4061]字符串树
- 【JSOI2015】字符串树
- 【模板】线段树区间修改、区间求和、查询最值
- Balanced Binary Tree:判断一棵树是否为平衡二叉树
- 归并排序
- Python菜鸟教程(一)-爬b站数据
- 实战命令
- [BZOJ4488][JSOI2015]最大公约数 DP+STL
- STL搜索算法小结
- 洛谷 2695 骑士的工作 排序+贪心 解题报告
- 数字黑洞
- 不基于比较的基数排序原理图解
- 全球研发开支排名:亚马逊第一,BATJ排不上号!
- Gartner公布2018十大技术发展趋势 2025年AI重塑商业模式
- 自动化对就业没有影响?看看这张图再说
- 安卓studio jni调用第三方静态库CMakeLists配置