又复习了前些天写的周任务加深了一些理解
今天加深理解了素数筛中if(i%a[j]==0) break;这一步,目的是保证了每个合数只被筛了一次
今天每日一题复习了差分
差分可以运用于在(l,r)区间上全+c
b[l]+=c,b[r+1]-=c;
今天那题改变数组,可以记录一个数操作过加一的次数,如果次数不为0,那么最后这个位置就是1,否则为0
通过这题要一个区间都变为1,想到一个区间都加一想到用差分
差分用完后要再用次前缀和 b[i]+=b[i-1]
以后题目说一个范围内都加减某个数,或者一个范围都变为某个常数都可以往差分方向想
void chafen(int l,int r)先写个差分在主函数前
后面要在某个范围直接用,例如今天这个题要a[i]后的全为1,范围为([i-a[i]+1,i) 则chafen(i-a[i]+1,i)