题意是这样,给定一个1000x1000的点阵.m组询问.每次询问一个由(0,0).(x,0)点一以及从原点出发的方向向量(a,b)构成的直角三角形包围的点的权值和. 点的权值是(x+A)(y+B),当中A,B是给定的常数 做法也非常显然,将查询离线下来依照方向向量排序,之后的操作就相当于用一根端点在原点的线从x轴開始往y轴扫,不断地把扫到的点的权值增加到树状数组中. 每次扫到某个查询的方向向量时,用这个三角形的底边求前缀和,记录下来就好了. 权值会爆int,注意下就好了 #include<map…