[BZOJ 4488][Jsoi2015]最大公约数
不知谁说过一句名句,我们要学会复杂度分析
#include <bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i=a;i<=b;++i) #define fd(i,a,b) for(int i=a;i>=b;--i) ; typedef long long ll; inline ll gi() { ll x=; char o; bool f=true; for(;!isdigit(o=getchar());) if(o=='-')f=false; )+(x<<)+(o&); ; } ll ans,a[maxn],pre[maxn<<][]; int n; ll gcd(ll x,ll y){return x?gcd(y%x,x):y;} ll gt(int s,int t) { ll ret=a[s]; fd(i,,) <<i)-<=t) ret=gcd(ret,pre[s][i]),s=s+(<<i); return ret; } int Find(int l,int r,int s,ll v) { int ret=l; while( l<=r) { ; ; ; } return ret; } int main() { #ifndef ONLINE_JUDGE freopen("3.in","r",stdin); #endif scanf(,n) a[i]=pre[i][]=gi(); rep(k,,) rep(i,,n) pre[i][k]=gcd(pre[i+(<<k-)][k-],pre[i][k-]); rep(i,,n) { int L=i; while(L<=n) { ll val=gt(i,L); int ed=Find(i,n,i,val); ans=max(ans,1LL*(ed-i+)*val); L=ed+; } } printf("%lld\n",ans); ; }
[BZOJ 4488][Jsoi2015]最大公约数的更多相关文章
- bzoj 4488 [Jsoi2015]最大公约数 结论+暴力
[Jsoi2015]最大公约数 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 302 Solved: 169[Submit][Status][Dis ...
- BZOJ 4488: [Jsoi2015]最大公约数 暴力 + gcd
Description 给定一个长度为 N 的正整数序列Ai对于其任意一个连续的子序列 {Al,Al+1...Ar},我们定义其权值W(L,R )为其长度与序列中所有元素的最大公约数的乘积,即W(L, ...
- BZOJ4488: [Jsoi2015]最大公约数
Description 给定一个长度为 N 的正整数序列Ai对于其任意一个连续的子序列{Al,Al+1...Ar},我们定义其权值W(L,R )为其长度与序列中所有元素的最大公约数的乘积,即W(L,R ...
- BZOJ 4472 [Jsoi2015]salesman(树形DP)
4472: [Jsoi2015]salesman Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 417 Solved: 192[Submit][St ...
- bzoj 4484 [Jsoi2015]最小表示——bitset
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4484 每个点上存一下它到每个点的连通性.用 bitset 的话空间就是 \( \frac{n ...
- BZOJ4488 JSOI2015最大公约数
显然若右端点确定,gcd最多变化log次.容易想到对每一种gcd二分找最远端点,但这样就变成log^3了.注意到右端点右移时,只会造成一些gcd区间的合并,原本gcd相同的区间不可能分裂.由于区间只有 ...
- bzoj 4472: [Jsoi2015]salesman【树形dp+贪心】
一个点,设f[u]为要取最大值显然是前最大停留次数-1个儿子的正数f和,排个序贪心即可 判重的话就是看没选的里面是否有和选了的里面f值相同的,有的话就是一.注意在选的时候要把加进f的儿子的g合并上去 ...
- bzoj 4481: [Jsoi2015]非诚勿扰【期望+树状数组】
首先很容易计算对于一个如意郎君列表里有x个男性的女性,编号排第i位的男性被选的概率是 \[ p*(1-p)^{i-1}+p*(1-p)^{i-1+n}+p*(1-p)^{i-1+n}+- \] \[ ...
- BZOJ 4488/4052 gcd
思路: 一开始 我是想 对于固定的左端点 从左到右 最多有 log种取值 且单调递减 那不妨倍增预处理+二分GCD在哪变了.. 复杂度O(nlog^2n) gcd最多log种取值.. 好了我们可以 ...
随机推荐
- 【bzoj1017】[JSOI2008]魔兽地图DotR
1017: [JSOI2008]魔兽地图DotR Time Limit: 30 Sec Memory Limit: 162 MBSubmit: 1658 Solved: 755[Submit][S ...
- php 读取和下载execl
最近用到php 对excel 的操作 下来 小弟为大家 先贴一下自己的代码 有什么补充的 大神们请指点下.感激不尽. 我用的是yii2 yii2中有类 phpexcel 先说说下载吧. 首先下载 ...
- MAT(Memory Analyzer tool)使用
当线上环境出现OOM/内存泄漏了,怎么办? 让虚拟机在发生内存溢出时 Dump 出当前的内存堆转储快照,配置-XX:+HeapDumpOnOutOfMemoryError, 当出现OOM时,分析dum ...
- jq遍历table表demo
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- c++基本
要投身游戏业了,自学cocos2d-x之前准备把c++的基础再捡起来 基本语法 1. cout<<"hello world"; 2. 开头写 #include < ...
- 常用Linux命令:mount/umount/blkid
一.mount:挂载命令 1.命令格式 mount [参数] [设备名称] [挂载点] 2.常用参数 -a :安装在/etc/fstab文件中列出的所有文件系统 -f :伪装mount,做出检 ...
- XE StringGrid应用(G1属性触发G2)
unit UnitMain; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System. ...
- CentOS7 yum安装lamp环境
1.安装apache yum install httpd #根据提示,输入Y安装即可成功安装 systemctl start httpd.service #启动apache systemctl sto ...
- [.net 多线程]volatile 摘录
一.volatile 介绍 volatile 关键字指示一个字段可以由多个同时执行的线程修改. 声明为 volatile 的字段不受编译器优化(假定由单个线程访问)的限制. 这样可以确保该字段在任何时 ...
- JavaScript中function 之return false的理解(实例代码)
1.司空见惯代码,在某一dom节点上注册事件方法 $("#btnResponse").click(Login); $("#txtCode").keydown(R ...