You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
给定一个字符串矩阵,字符串只含x,y,z , 处理q次询问,每次询问一个子矩阵,输出这个子矩阵的本质不同字符串个数。
第一行输入两个正整数n,m,代表矩阵的行数和列数
接下来的n行,每行输入m个字符串s (s∈{x,y,z} )
接下来的一行,输入一个正整数q,代表询问次数。
接下来的q行,每行输入四个正整数x1,y1,x2,y2,代表询问的子矩阵左上角为第x1行第y1列,右下角为第x2行第y2列。
1≤n,m≤500
1≤q≤50000
1≤x1≤x2≤n
1≤y1≤y2≤m
输出q行,每行输出一个整数,代表子矩阵的本质不同字符串个数。
输入
3 3
x y y
x y y
z z z
2
1 2 2 3
2 1 3 2
输出
1
3
问题化简:给定一个矩阵,每次询问一个子矩阵中不同种类的字符串。
关键:字符串种类非常少,只有三种。所以我们暴力的开三个二维数组。每个二维数组用来记录一种字符串的二维前缀和。然后查询的时候分三次查询即可。
问题:二维前缀和是啥??
跟着塔子哥入门就完事了:前缀和入门+练习