41 萌新寒假作业七 F题 容斥原理(画图去重叠部分)

CF 835C

要求:100*100的坐标系中存在n个点,每个点有一个权值s,0<=s<=c,权值从s到c,再
从c到s进行周期性变化,每个单位时间变化1。求在第t个单位时间,由(x1,y1)和(x2,y2)
(分别是矩阵的左下和右上坐标)围成的矩形内权值之和。
方法:容斥原理(画图去重叠部分)
cnt[s][x][y]=1表示(x,y)处初始权值为s。
cnt[s][x][y]=0表示(x,y)处初始权值不为s。
1.将cnt数组初始化:(公式由画图推出,因区域是矩阵且数组已初始化为0,无需担心减1会越界)
cnt[s][x][y]+=(cnt[s][x-1][y]+cnt[s][x][y-1]-cnt[s][x-1][y-1]);
2.求矩阵内权值和:(公式由画图推出,因区域是矩阵且数组已初始化为0,无需担心减1会越界)
s1=(i+t)%(c+1);表示原本权值为i的点在经过t时间后权值变为s1。
sum=Σ(cnt[i][x2][y2]-cnt[i][x1-1][y2]-cnt[i][x2][y1-1]+cnt[i][x1-1][y1-1])*s1;
(0<=i<=c)表示t时间后权值为s1的个数*权值s1。
 

猜你喜欢

转载自blog.csdn.net/irving0323/article/details/81191071