题目链接:http://contest-hunter.org:83/contest/0x40%E3%80%8C%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E8%BF%9B%E9%98%B6%E3%80%8D%E4%BE%8B%E9%A2%98/4302%20Interval%20GCD
题意:
两种线段树操作,1是区间加,2是求区间gcd;
做法:
如果是单点更新其实就是正常求gcd就好了,但是这是区间更新,还是没一个数都要加,就会比较麻烦,这里有一个公式
,即从第二项开始每一项减去前一项的gcd,这样的话就会发现区间加就只需要改变两个值就好了,会让操作变得非常方便,但是由于a还是原来的a,所以还要是要更新一个基数情况,即在原来情况上改变后这个数变成了多少,那么这个用树状数组稍微维护一下就好了。
#include
#include
#include