ZT23 小美的蛋糕切割

ops/2025/3/4 9:07:47/

描述

小美有一个矩形的蛋糕,共分成了 n 行 m 列,共 n×m 个区域,每个区域是一个小正方形,已知蛋糕每个区域都有一个美味度。她想切一刀把蛋糕切成两部分,自己吃一部分,小团吃另一部分。
 

小美希望两个人吃的部分的美味度之和尽可能接近,请你输出∣s1​−s2​∣的最小值。(其中s1​代表小美吃的美味度,s2​代表小团吃的美味度)。

请务必保证,切下来的区域都是完整的,即不能把某个小正方形切成两个小区域。

输入描述:

第一行输出两个正整数 n 和 m ,代表蛋糕区域的行数和列数。
接下来的 n 行,每行输入 m 个正整数 aij​ ,用来表示每个区域的美味度。
2≤n,m≤10^3
1≤aij​≤10^4

输出描述:

一个整数,代表 ∣s1​−s2​∣ 的最小值。

示例1

输入:

2 3
1 1 4
5 1 4

输出:

0

说明:

把蛋糕像这样切开:
1 1 | 4
5 1 | 4
左边蛋糕美味度之和是8
右边蛋糕美味度之和是8
所以答案是0。
一、问题分析

首先读题,仔细看描述中的内容,发现需求是

1.有一块蛋糕被分为n行m列

2.每一个坐标有一个美味度

3.现在希望切一刀,使得两块蛋糕的美味度之和的差的绝对值尽量小

4.问最小的美味度之和的差值的绝对值是多少

二、解题思路

1.首先读取数据到matrix[n][m]

2.维护一个二维前缀和数组matrixsum[n][m]表示从0,0到i,j的面积大小(可以使用同一个数组)

3.分别模拟横切和竖切蛋糕,并记录美味度之和之差的绝对值的最小值

4.比较最小值,返回最小值

三、具体步骤

使用的语言是C

#include <stdio.h>
#define ll long long
int main() {ll n, m, i, j;if (scanf("%lld %lld", &n, &m) != EOF) {ll ma[n + 1][m + 1];for(i = 0; i <= n; i++) {for(j = 0; j <= m; j++) {ma[i][j] = 0;}}// 遍历蛋糕的每一块,并记录前缀和for(i = 1; i <= n; i++) {for(j = 1; j <= m; j++) {if(scanf("%lld", &ma[i][j]) != EOF) {ma[i][j] += ma[i - 1][j] + ma[i][j - 1] - ma[i - 1][j - 1];} else printf("error2\n");}}ll diff = 0;ll mindiff = 10000000000000ll;for(i = 1; i <= n; i++) {diff = ma[n][m] - 2 * ma[i][m];if(diff < 0) diff = -diff;mindiff = diff < mindiff ? diff : mindiff;}for(i = 1; i <= m; i++) {diff = ma[n][m] - 2 * ma[n][i];if(diff < 0) diff = -diff;mindiff = diff < mindiff ? diff : mindiff;}printf("%lld\n", mindiff);} else printf("error1\n");return 0;
}


http://www.ppmy.cn/ops/163001.html

相关文章

2.css简介

什么是css&#xff1a; CSS (Cascading Style Sheets&#xff0c;层叠样式表&#xff09;&#xff0c;是一种用来为结构化文档&#xff08;如 HTML 文档或 XML 应用&#xff09;添加样式&#xff08;字体、间距和颜色等&#xff09;的计算机语言&#xff0c;CSS 文件扩展名为 .…

DNS 详细过程 与 ICMP

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Linux 目录 一&#xff1a;&#x1f525; DNS (Domain Name System) 快速了解&#x1f98b; DNS 背景&#x1f98b; 域名简介&#x1f98b; 真实地址查询 —— DNS&#x1f380; 域名的层级关系&am…

蓝耘元生代|调用Deepseek API提升数据集多样性:数据增强实践

文章目录 一、什么是Deepseek&#xff1f;二、数据增强的必要性三、 注册并登录蓝耘智算平台准备数据集调用Deepseek API 四、数据增强实战五、总结 在机器学习和深度学习领域&#xff0c;数据增强是一项非常重要的技术&#xff0c;尤其是在数据集较小的情况下。通过数据增强&a…

利用DeepSeek-Kimi打通Excel与PPT的链条,自动生成数据分析报告

通过DeepSeek在Excel生成结构化的数据分析报告&#xff0c;再借助Kimi的PPT助手将报告自动转换为专业的PPT演示文稿&#xff0c;从而实现从数据到展示的一站式解决方案。 案例数据 1.一键生成数据分析报告 在下载并安装“Excel矩阵”后&#xff0c;我们启用DeepSeek的右侧对话…

《论云原生架构及其应用》审题技巧 - 系统架构设计师

论云原生架构及其应用论文写作框架 一、考点概述 “论云原生架构及其应用”这一论题&#xff0c;主要考察了考生对云原生技术及其架构原则的深入理解与实践应用。论题的核心在于云原生架构的概念、设计原则及其在软件开发项目中的具体应用。首先&#xff0c;考生需对云原生架…

从零搭建微服务项目Pro(第1-2章——Quartz实现定时任务模块优化)

前言&#xff1a; 在企业项目中&#xff0c;往往有定时任务发布的需求&#xff0c;比如每天晚9点将今日数据备份一次&#xff0c;或每月一号将上月的销售数据邮件发送给对应的工作人员。显然这些操作不可能是人工到时间点调用一次接口&#xff0c;需要编写专门的模块完成任务的…

使用 Java 更新 Word 文档中的图表数据-超详细

使用 Java 更新 Word 文档中的图表数据 在日常的工作中&#xff0c;尤其是在数据分析和报告自动化的场景中&#xff0c;可能会遇到需要定期更新 Word 文档中的图表数据的需求。比如&#xff0c;生成数据报告时&#xff0c;我们需要在图表中更新一些动态的数据值。今天&#xf…

PHP函数与类:面向对象编程实践指南

PHP函数与类&#xff1a;面向对象编程实践指南 PHP的面向对象编程&#xff08;OOP&#xff09;能力使其成为构建可维护、可扩展Web应用的重要工具。本文从函数封装到类设计&#xff0c;系统讲解PHP面向对象编程的核心概念与实践技巧。 一、函数&#xff1a;代码复用的基本单元…