bzoj 2818 两个互质的数的gcd=1,所以他们同时乘一个素数那么他们的gcd=这个素数,所以枚举素数p找n/p以内有多少对互质数,用欧拉函数。
bzoj 2809 可并堆,对于每一个子树显然是选花费小的节点合算,维护一个大根堆,并且当堆的花费和大于m时删掉堆根。
bzoj 2243 树剖 线段树区间染色查询区间颜色段数量,树剖之后还要考虑两段衔接之后颜色段是否减少。
bzoj 2005 会发现(x,y)到(0,0)路上有gcd(x,y)-1棵植物,即求sum(2*gcd(i,j)-1),(1<=i<=n,1<=j<=m),然后枚举每一个gcd算贡献度,n以内以i为因子的数有(n/i)个,还要减去以i的倍数作为因子的数的个数就不会算重了。这到这算记录一下就行了
bzoj 4034 裸树剖,更新子树时直接更新根节点的出点和入点即可。
bzoj 2120 分块,修改时暴力修改
bzoj 2190 欧拉求小于n的和n互质的数
bzoj 2152 树形dp,每个点维护%3的余数的个数
bzoj 2002 分块
bzoj 1257 k%i=k-[k/i]*i,因为 [k/i] 是一段一段的区间的变化的,所以可以每一段区间求等差数列和再乘上他。
bzoj 1191 裸的二分图最大匹配,注意当一旦回答错了问题就会淘汰,因此一旦找不到增广路就退出。
bzoj 1968 可以筛出素数乱搞刚好卡过。然而n/i就是n以内的能够整除i的数的个数~
bzoj 1878 很好的树状数组题目,离线处理,把询问的区间按照右值从小到大排序然后依次把数据插入,遇到插入过的就去掉前面插入的并在当前点重新插入,这样后面询问的就不会受到影响了