P4850 [IOI2009] 葡萄干 raisins 题解

题目:

题目传送门:这里

题目背景

IOI2009

题目描述

普罗夫迪夫的著名巧克力大师 Bonny 需要切开一板带有葡萄干的巧克力。

巧克力是一个包含许多相同的方形小块的矩形。小块沿着巧克力的边排列成 n n n m m m 列,即共有 n × m n\times m n×m 块。每个小块上有 1 1 1 个或多个葡萄干,没有葡萄干在小块的边上或者跨过两个小块。

最开始,巧克力是一整块。Bonny 需要把它切成上述的 n × m n\times m n×m 个独立的小块。因为 Bonny 很忙,她需要她的助手 Sly peter 帮她切。

Peter 只能从一端到另一端切直线,并且他要为他的每一刀得到报酬。Bonny 手头没有钱,但是她有足够的葡萄干,所以她提出用葡萄干付给 peter。Sly peter 同意接受葡萄干,但是有下面的条件:每次他把给定的一块巧克力切成两小块,他都要得到和那块给定的巧克力上葡萄干数目相同的葡萄干。

Bonny 想要付给 peter 尽可能少的葡萄干。她知道这 n × m n\times m n×m 个小块中每一个小块上葡萄干的数目。她可以选择递给 peter 的巧克力的顺序,也可以告诉 peter 如何切(横切还是竖切)以及从哪里切。请告诉 Bonny 如何把巧克力切成一个个独立的小块,使她能够付给 Sly peter 尽可能少的葡萄干。

任务:写一个程序,给定每个小块上葡萄干的数目,计算 Bonny 要付给 Sly peter 的最少的葡萄干的数目。

输入格式

你的程序必须从标准输入中读取下列数据:第一行包含整数 n n n m m m,以一个空格隔开。

接下来的 n n n 行描述了每个小块上葡萄干的数目。这 n n n 行中第 k k k 行描述的是第 k k k 行小块的巧克力。每行包含 m m m 个整数,分别以一个空格隔开。这些整数描述的是该行从左到右的小块。第 k k k 行的第 p p p 个整数表示位于第 k k k 行第 p p p 列的小块上的葡萄干数目。

输出格式

你的程序必须向标准输出写入一行,该行包含一个整数:Bonny 要付给 Sly peter 的最少的葡萄干的数目。

样例 #1

样例输入 #1

2 3
2 7 5
1 9 5

样例输出 #1

77

提示

对于 25 % 25\% 25% 的数据, n , m ≤ 7 n,m\leq 7 n,m7

对于 100 % 100\% 100% 的数据, 1 ≤ n , m ≤ 50 1\leq n,m\leq 50 1n,m50,每小块上的葡萄干数目 s i , j s_{i,j} si,j 满足 1 ≤ s i , j ≤ 1 0 3 1\leq s_{i,j} \leq 10^3 1si,j103

拓展:

不会吧不会吧,不会还有人不知道二维前缀和怎么算吧!

核心代码:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值