BZOJ5028

Posted ONION_CYC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BZOJ5028相关的知识,希望对你有一定的参考价值。

【算法】数学+线段树/树状数组

【题解】这题的问题在线段树维护gcd只能支持修改成一个数,不支持加一个数。

套路:gcd(a,b,c,d,e)=gcd(a-b,b-c,c-d,d-e,e),也就是所有数的gcd可以转化为所有差值和最后一个数的gcd

那么只需要查询区间差值gcd和一个数。

对于区间差值gcd查询,区间加数只会导致两个单位的差值变化,所以可以用线段树单点修改区间查询gcd。

对于一个数查询,就用树状数组维护区间加值和单点查询就行了。

以上是关于BZOJ5028的主要内容,如果未能解决你的问题,请参考以下文章

hzwer的bzoj题单

踩着神犇的脚印走--hzwer刷题表in bzoj

板刷bzoj计划(真香预警)

bzoj2127&bzoj2132

考后反思(bzoj3940 bzoj4899 bzoj3307)

SDOI2017 Round1 Day1 题解 (BZOJ4816 BZOJ4817 BZOJ4818)