当前位置: 首页 > news >正文

小R的蛋糕分享

小R的蛋糕分享

问题描述
小R手里有一个大小为 n 行 m 列的矩形蛋糕,每个小正方形区域都有一个代表美味度的整数。小R打算切割出一个正方形的小蛋糕给自己,而剩下的部分将给小S。她希望两人吃的部分的美味度之和尽量接近。
我们定义小R吃到的部分的美味度之和为 s_1,而小S吃到的部分的美味度之和为 s_2,请你帮助小R找到一个切割方案,使得 |s_1 - s_2| 的值最小。

测试样例

样例1:
输入:n = 3, m = 3, a = [[1, 2, 3], [2, 3, 4], [3, 2, 1]]
输出:1

样例2:
输入:n = 4, m = 4, a = [[1, 2, 3, 4], [4, 3, 2, 1], [1, 2, 3, 4], [4, 3, 2, 1]]
输出:2

样例3:
输入:n = 2, m = 2, a = [[5, 5], [5, 5]]
输出:10

题解

核心思想,枚举每一个点作为正方形右下角的那个点。使用前缀和数组进行重复求和运算。

#include <iostream>
#include <vector>
#include <string>using namespace std;int solution(int n, int m, vector<vector<int>>& a) {// PLEASE DO NOT MODIFY THE FUNCTION SIGNATURE// write code hereint sum = 0;// 二维前缀和,记录0,0到i,j的美味度和//int num[n][m+1];vector<vector<int>> num(n + 1, vector<int>(m + 1, 0));for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {num[i + 1][j + 1] = a[i][j] + num[i][j+1] + num[i+1][j] - num[i][j];sum += a[i][j];}}int ans = INT32_MAX;int maxNum = min(n, m);for (int i = 1; i <= maxNum; i++) {for (int r = 0; r < n; r++) {for (int c = 0; c < m; c++) {if (c + 1 < i  || r + 1 < i) {continue;}int tmp = num[r+1][c+1] - num[r+1][c+1-i] - num[r+1-i][c+1] + num[r+1-i][c+1-i];ans = min(ans, abs(sum - 2 * tmp));}}}return ans;
}
http://www.lryc.cn/news/518087.html

相关文章:

  • 基于Arduino的FPV头部追踪相机系统
  • 使用 PyTorch 自定义数据集并划分训练、验证与测试集
  • VSCode 插件
  • Windows使用AutoHotKey解决鼠标键连击现象(解决鼠标连击、单击变双击的故障)
  • Linux 环境(Ubuntu)部署 Hadoop 环境
  • 如何在Windows 11 WSL2 Ubuntu 环境下安装和配置perf性能分析工具?
  • Docker运维高级容器技术知识点总结
  • react-quill 富文本组件编写和应用
  • LabVIEW轴承性能测试系统
  • 【《游戏编程模式》实战04】状态模式实现敌人AI
  • 借助免费GIS工具箱轻松实现las点云格式到3dtiles格式的转换
  • 科研绘图系列:R语言科研绘图之标记热图(heatmap)
  • 【轻松学C:编程小白的大冒险】--- C语言简介 02
  • 《HeadFirst设计模式》笔记(上)
  • 数据结构:ArrayList与顺序表
  • SpringBoot之核心配置
  • EasyExcel上传校验文件错误信息放到文件里以Base64 返回给前端
  • 单片机软件定时器V4.0
  • 超完整Docker学习记录,Docker常用命令详解
  • C++ 入门第26天:文件与流操作基础
  • 使用python将多个Excel表合并成一个表
  • halcon三维点云数据处理(七)find_shape_model_3d_recompute_score
  • vue js实现时钟以及刻度效果
  • unity学习15:预制体prefab
  • 基于Thinkphp6+uniapp的陪玩陪聊软件开发方案分析
  • MySQL - 子查询和相关子查询详解
  • Android 系统签名 keytool-importkeypair
  • 安卓漏洞学习(十八):Android加固基本原理
  • Docker 使用Dockerfile创建镜像
  • 【Python运维】利用Python实现高效的持续集成与部署(CI/CD)流程