【二分答案】jzoj蛋糕

这是一个关于如何切分蛋糕以使Bessie获得最多巧克力的问题。Bessie需要在R行C列的蛋糕上切3横3竖刀,确保每个部分完整,并且在朋友们选择最大巧克力份额后,她能得到的巧克力最大化。题目提供了不同数据范围,并建议使用暴力枚举结合二分法来找出最佳切法。
摘要由CSDN通过智能技术生成

Link
~~(又一个)~~二分答案。


题目描述

今天是Bessie的生日,他买了一个蛋糕和朋友们一起分享,蛋糕可以看成是一个R行C列的表格,共有R*C个格子,每个格子都有一个0至9的数字,表示该格子蛋糕拥有的巧克力。现在Bessie要把蛋糕横的切3刀再竖的切3刀,由于Bessie刀法厉害,所以每个格子蛋糕都是完整的,显然蛋糕会被切成16份,然后Bessie和他的15个朋友们每人拿一份,Bessie比较客气,总是等其他朋友拿完了,Bessie拿最后剩下的那一份。Bessie的朋友们都很不客气,都是挑最多巧克力的那份去拿,于是Bessie最后拿到手的那份蛋糕总是巧克力总和最少的。Bessie心想:既然自己总是最后拿蛋糕,那应该怎么切蛋糕,才能使得自己拿的那部分蛋糕的有尽量多的巧克力呢?这个问题自然是你的任务了。

Input

第一行,个两整数R,C。
接下来有R行,每行有C个整数,每个整数范围是0至9

Output

一个整数,表示Bessie最后拿到的蛋糕最多可以有多少巧克力。

数据范围

40%的数据, 4 <= R,C <= 10。
60%的数据, 4 <= R,C <= 20。
100%的数据, 4 <= R,C <= 75。


题目大意

给出一个r*c的数字矩阵,横切三刀,竖切三刀(没有弯曲部分),求如何切使得最小一块矩阵和最大。


这数据范围…暴力走起。

暴力枚举竖切三刀的位置,然后二分答案,判断这3刀切 是否可以凑出横着4刀切大于答案的。

#include<cstdio>
#include<iostream>
using namespace std;
int s[80][80],RRR,maxx,r,c,l1,l2,l3,mid;
char ll;
bool check(){
   
	int k1=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值