题解:by Mercury_Lc

阎小罗的矩阵给的n和m都不超过300,枚举一下所有情况就可以了,用前缀和来储存。数组a[x][y]代表前x行前y列的和是多少,那么枚举每一种切割的方式就可以。注意一下切掉的第x行和第y列的数都是不计入的,减掉的时候别重复或者遗漏了。

参考代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
typedef long long ll;
ll a[505][505];
ll min(ll x, ll y)
{
if(x > y)
return y;
else
return x;
}
ll max(ll x, ll y)
{
if(x < y)
return y;
else
return x;
}
int main()
{
ll t, n, m, i, j;
scanf("%lld", &t);
assert(1 <= t && t <= 10);
while(t--)
{
memset(a, 0, sizeof(a));
scanf("%lld %lld", &n, &m);
assert(n >= 3 && n <= 300 && m >= 3 && m <= 300);
for(i = 1; i <= n; i++)
{
for(j = 1; j <= m; j++)
{
scanf("%lld", &a[i][j]);
assert(a[i][j] >= 0 && a[i][j] <= 1000000000);
a[i][j] += a[i][j - 1];
}
for(j = 1; j <= m; j++)
{
a[i][j] += a[i - 1][j];
}
}
ll ans = 0x3fffffffffff;
for(i = 2; i < n; i++)
{
for(j = 2; j < m; j++)
{
ll aa, bb, cc, dd;
aa = a[i - 1][j - 1];
bb = a[i - 1][m] - a[i - 1][j];
cc = a[n][j - 1] - a[i][j - 1];
dd = a[n][m] - a[n][j] - (a[i][m] - a[i][j]);
ll maxx = max(max(aa, bb), max(cc, dd));
ll minn = min(min(aa, bb), min(cc, dd));
ans = min(maxx - minn, ans);
}
}
printf("%lld\n", ans);
}
return 0;
}

F 阎小罗的Minimax (第十届山东理工大学ACM网络编程擂台赛 正式赛 )的更多相关文章

  1. K Simple question (第十届山东理工大学ACM网络编程擂台赛 正式赛)

    题解:素数筛+唯一分解定理 可以把素数筛那部分放到while之外,减小时间复杂度. #include <stdio.h> #include <stdlib.h> #includ ...

  2. ACM学习历程—NPU 2015年陕西省程序设计竞赛网络预赛(正式赛)F题 和谐的比赛(递推)

    Description 今天西工大举办了一场比赛总共有m+n人,但是有m人比较懒没带电脑,另外的n个人带了电脑.不幸的是,今天机房的电脑全坏了只能用带的电脑,一台电脑最多两人公用,确保n>=m. ...

  3. NPU 2015年陕西省程序设计竞赛网络预赛(正式赛)F题 和谐的比赛(递推 ||卡特兰数(转化成01字符串))

    Description 今天西工大举办了一场比赛总共有m+n人,但是有m人比较懒没带电脑,另外的n个人带了电脑.不幸的是,今天机房的电脑全坏了只能用带的电脑,一台电脑最多两人公用,确保n>=m. ...

  4. 第十二章:Python の 网络编程进阶(一)

    本課主題 RabbitMQ 的介紹和操作 Hello RabbitMQ RabbitMQ 的工作队列 消息确应.消息持久化和公平调度模式 RabbitMQ的发布和订阅 RabbitMQ的主题模式 Ra ...

  5. Android学习之基础知识十二 — 第二讲:网络编程的最佳实践

    上一讲已经掌握了HttpURLConnection和OkHttp的用法,知道如何发起HTTP请求,以及解析服务器返回的数据,但是也许你还没发现,之前我们的写法其实是很有问题的,因为一个应用程序很可能会 ...

  6. 【linux高级程序设计】(第十五章)UDP网络编程应用 5

    域名与IP信息解析 /etc/hosts 文件中有部分IP地址与域名主机名的信息 /etc/resolv.conf 里面有DNS服务器的IP地址 struct hostent { char *h_na ...

  7. 【linux高级程序设计】(第十五章)UDP网络编程应用 4

    socket信号驱动 为了使一个套接字能够使用信号驱动I/O,至少需要以下3步操作. 1.安装SIGIO信号 2.套接字的拥有者设定为当前进程.因为SIGIO信号只会送到socket拥有者进程. 通过 ...

  8. 【linux高级程序设计】(第十五章)UDP网络编程应用 3

    UDP组播通信 组播IP地址: D类IP地址  1110.**********  224.0.0.1 ~ 239.255.255.255 组播MAC地址:低23位,直接对应IP地址, 从右数第24位为 ...

  9. 【linux高级程序设计】(第十五章)UDP网络编程应用 2

    UDP广播通信 单播:一对一,TCP和UDP均可完成 广播:只能UDP完成.广播时发送方只发送一个数据包,但是网络上的交换机默认转发广播数据包到所有端口.路由器默认不转发任何广播数据包.故广播在局域网 ...

随机推荐

  1. [Luogu5280][ZJOI2019]线段树(线段树+DP)

    https://www.luogu.org/blog/Sooke/solution-p5280 首先想到对线段树上每个点分别维护有多少棵线段树在它上有标记(f[]),然后想到对于每个操作,根据转移的不 ...

  2. Angular 学习笔记 (动态组件 & Material Overlay & Dialog 分析)

    更新: 2019-11-24  dialog vs router link refer : https://stackoverflow.com/questions/51821766/angular-m ...

  3. 2.Excel VBA术语

    Excel VBA名词术语 在这一章中,让我们了解常用的Excel VBA术语.这些术语将在进一步模块学习中使用,因此理解它们是非常关键的. 模块 1.模块是其中代码被写入的区域.这是一个新的工作簿, ...

  4. Java8新特性 - 新时间和日期 API

    本地时间和时间戳 主要方法: now:静态方法,根据当前时间创建对象 of:静态方法,根据指定日期/时间创建对象 plusDays,plusWeeks,plusMonths,plusYears:向当前 ...

  5. hdu1501 记忆化搜索。。。

    Problem Description Given three strings, you are to determine whether the third string can be formed ...

  6. List、dictionary、hashtable、ArrayList集合

    集合的引用命名空间在 system.Collections下 1.为什么引入集合 因为数组长度是固定的,为了建立一个动态的"数组",所以引入了集合. 2.为什么引入ArrayLis ...

  7. processon使用教程

    原文地址:https://www.cnblogs.com/yangliheng/p/6082250.html 一.引言 作为一名IT从业者,不仅要有扎实的知识储备,出色的业务能力,还需要具备一定的软实 ...

  8. 关键字:__thread & pthread_key_t

    在说__thread之前,先来看看pthread_ket_t吧. 参考:http://blog.csdn.net/lmh12506/article/details/8452700 上面的博文说的比较通 ...

  9. ceph集群部署(基于jewel版)

    环境 两个节点:ceph1.ceph2 ceph1: mon.mds.osd.0.osd.1 ceph2: osd.2.osd.3 网络配置: ceph1: 管理网络,eth0,10.0.0.20 存 ...

  10. selenium模拟H5触摸滑动之-TouchAction

    最近做移动端H5页面的自动化测试时候,需要模拟一些上拉,下滑的操作,最初考虑使用使用selenium ActionChains来模拟操作,但是ActionChains 只是针对PC端程序鼠标模拟的一系 ...