本文主要是介绍CSP 202104-2 邻域均值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接:
计算机软件能力认证考试系统http://118.190.20.162/view.page?gpid=T127
【分析】看数据量就知道了,要用滑动窗口+前缀和
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n, l, r, t, m, d;n = scanner.nextInt();l = scanner.nextInt();r = scanner.nextInt();t = scanner.nextInt();d = r * 2; m = n + d;int[][] arr = new int[m][m];int[][] pre = new int[m][m];int[][] ret = new int[m][m];int i, j, x, y, p, q, u, v;for(i = 0; i < n; i++){for(j = 0; j < n;j++){arr[i][j] = scanner.nextInt();pre[i][j] = arr[i][j];ret[i][j] = pre[i][j];}}for(i = 0; i < n; i++){for(j = 1; j < m; j++){if(j <= d) {pre[i][j] = pre[i][j - 1] + arr[i][j];ret[i][j] = pre[i][j];}else{pre[i][j] = pre[i][j - 1] + arr[i][j] - arr[i][j - d - 1];ret[i][j] = pre[i][j];}}}for(j = 0; j < m; j++){for(i = 1; i < m; i++){if(i <= d) {pre[i][j] = pre[i - 1][j] + ret[i][j];}else{pre[i][j] = pre[i - 1][j] + ret[i][j] - ret[i - d - 1][j];}}}int row = 0, col = 0, ans = 0;for(i = r; i < m - r; i++){for(j = r; j < m - r; j++){if(i <= d) row = i + 1;else if(i >= n) row = d - (i - n);else row = d + 1;if(j <= d) col = j + 1;else if(j >= n) col = d - (j - n);else col = d + 1;if((double)pre[i][j] / (row * col) <= t) ans++;}}System.out.println(ans);}}
这篇关于CSP 202104-2 邻域均值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!