CJX的方格纸
暂无测试数据。
本题暂无测试数据
【题目描述】
方格纸与草稿纸一样,都是算法竞赛中不可或缺的重要工具。身经百战的CJX自然也会随身带着方格纸。
CJX的方格纸有 n 行 m 列,一共 n × m 个方格,从上到下依次标记为第 1, 2, ..., n 行,从左到右依次标记为第 1, 2, ..., m 列,方便起见,CJX称第 i 行第 j 列的方格为 (i, j)。
CJX在方格纸中填满了数字,每个格子中都恰好有一个整数 ai,j。CJX不喜欢手算,因此每当他不想计算时,他就会让你帮忙计算。
CJX一共会给出 q 个询问,每次给定一个方格 (x, y) 和一个整数 k(1 ≤ k ≤ min(x, y)),你需要回答由 (x, y),(x − k + 1, y),(x, y − k + 1)三个格子构成的三角形边上以及内部的所有格子的 a 的和。
【输入格式】
第一行包含 6 个正整数 n, m, q, A, B, C
其中 n, m 表示方格纸的尺寸,q 表示询问个数。
为了防止输入数据过大,a 和询问将由以下代码生成:
unsigned int A,B,C;
inline unsigned int rng61(){
A ^= A << 16;
A ^= A >> 5;
A ^= A << 1;
unsigned int t = A;
A = B;
B = C;
C ^= t ^ A;
return C;
}
int main(){
scanf(”%d%d%d%u%u%u”, &n, &m, &q, &A, &B, &C);
for(i = 1; i <= n; i++)
for(j = 1; j <= m; j++)
a[i][j] = rng61();
for(i = 1; i <= q; i++){
x = rng61() % n + 1;
y = rng61() % m + 1;
k = rng61() % min(x, y) + 1;
}
}
【输出格式】
为了防止输出数据过大,设 fi 表示第 i 个询问的答案,则你需要输出一行一个整数,即:
【样例输入】
3 4 5 2 3 7
【样例输出】
3350931807
【数据范围】
对于全部数据:1 ≤ n, m ≤ 3000, 1 ≤ q ≤ 3000000, 1 ≤ A, B, C ≤ 1000000
【限制】
本题时间限制10s,空间限制256MB(256000KB)。
共?个测试点,每个?分,忽略多余空格和换行。
信息
- 难度
- (无)
- 分类
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者