Usaco*Brownie Slicing
Description
Input
Output
Sample Input
1 2 2 1
3 1 1 1
2 0 1 3
1 1 1 1
1 1 1 1
Sample Output
#include<cstdio>
#include<iostream>
using namespace std;
int a[][]={};
int r,c,a1,b1; bool check(int now)//判断当前答案的正确性
{
int tot=,x=,y=,j=,i=,lasti=;
while (i<r)//i为访问到第几行,避免越界
{
++i;
j=;
y=;//当前(lasti~i这一块面包被竖着切成y块面包)
while ((j<c)&&(y<b1))
{
tot=;
while ((tot<now)&&(j<c))//利用贪心,一列一列加
{
++j;
for (int i2=lasti+;i2<=i;++i2)
tot=tot+a[i2][j];
}
if (tot>=now)//如果可以产生一块新的面包,则将y+1
++y;
}
if (y>=b1)//当lasti~i行的面包能被切成大于等于B(b1)块且每一块的碎屑都大于mid,x+1,开始枚举下一次该切在哪
{
++x;
lasti=i;
}
} if (x>=a1)
return true;
return false;
} int main()
{
cin>>r>>c>>a1>>b1;
int right=;
for (int i=;i<=r;++i)
for (int j=;j<=c;++j)
{
cin>>a[i][j];
right+=a[i][j];
}
int ans=,left=,mid=;
while (left<=right)//二分答案
{
mid=(left+right)/;
if (check(mid)==true)
{
left=mid+;
ans=mid;//避免出现死循环
}
else right=mid-;
}
cout<<ans<<endl;
return ;
}
Usaco*Brownie Slicing的更多相关文章
- BZOJ 2196: [Usaco2011 Mar]Brownie Slicing( 二分答案 )
二分答案就可以了.... ----------------------------------------------------------------------- #include<cst ...
- NC24622 Brownie Slicing
NC24622 Brownie Slicing 题目 题目描述 Bessie has baked a rectangular brownie that can be thought of as an ...
- Brownie Slicing(二分枚举答案)
描述 Bessie has baked a rectangular brownie that can be thought of as an RxC grid (1 <= R <= 500 ...
- 【BZOJ】2196: [Usaco2011 Mar]Brownie Slicing
[题意]给定n*m的数字矩阵,要求横着切A-1刀,对每块再分别竖着切B-1刀,是最小子矩阵最大. [算法]二分+贪心 [题解]还记得提高组2015跳石头吗?这道题做法一致,只不过拓展到二维而已. 二分 ...
- BZOJ2196: [Usaco2011 Mar]Brownie Slicing
n<=500 * m<=500的方阵,先沿横坐标切A-1刀,再把每一块切B-1刀,得到A*B块,求这A*B块的数字之和的最小值的最大值. 最小值最大--二分,然后贪心切.每次扫一行,看这一 ...
- bzoj usaco 金组水题题解(2)
续.....TAT这回不到50题编辑器就崩了.. 这里塞40道吧= = bzoj 1585: [Usaco2009 Mar]Earthquake Damage 2 地震伤害 比较经典的最小割?..然而 ...
- bzoj Usaco补完计划(优先级 Gold>Silver>资格赛)
听说KPM初二暑假就补完了啊%%% 先刷Gold再刷Silver(因为目测没那么多时间刷Silver,方便以后TJ2333(雾 按AC数降序刷 ---------------------------- ...
- BZOJ-USACO被虐记
bzoj上的usaco题目还是很好的(我被虐的很惨. 有必要总结整理一下. 1592: [Usaco2008 Feb]Making the Grade 路面修整 一开始没有想到离散化.然后离散化之后就 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
随机推荐
- React学习笔记-5-初始化阶段介绍
初始化阶段可以使用的函数:getDefaultProps:只调用一次,实例之间共享引用.只有在组件的第一个实例被初始化的时候,才会调用他,然后react会把这个函数的返回结果保存起来,从第二个实例开始 ...
- 分布式之ZookeeperMac安装
Zookeeper用于分布式计算中的协调员,观察员,观察者,分布式锁,在系统中利用Zookeeper来处理事件通知,队列,锁等功能. 使用brew安装 zookeeper. 可参考:http://bl ...
- response生成图片验证码
新建一个java web工程 src 目录下xieyuan包MyServlet.java文件(Servlet文件) package xieyuan; import java.awt.Color; im ...
- jquery json数组(排序)
ar nums = ['12','2','5','36','4']; $('#show7').html(nums.join('<br/>')); //定义了sort的比较函数 nums = ...
- 【leetcode】Pascal's Triangle
题目简述: Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5 ...
- Android学习资源整理
官方文档:https://developer.android.com/guide/index.html (万万没想到居然有中文) 网友整理的学习笔记,挺不错的 http://www.runoob.co ...
- C# 图片无损压缩
/// <summary> /// 图像缩略图处理 /// </summary> /// <param name="bytes">图像源数据&l ...
- MIT 6.828 JOS学习笔记18. Lab 3.2 Part B: Page Faults, Breakpoints Exceptions, and System Calls
现在你的操作系统内核已经具备一定的异常处理能力了,在这部分实验中,我们将会进一步完善它,使它能够处理不同类型的中断/异常. Handling Page Fault 缺页中断是一个非常重要的中断,因为我 ...
- 进击的Python【第六章】:Python的高级应用(三)面向对象编程
Python的高级应用(三)面向对象编程 本章学习要点: 面向对象编程介绍 面向对象与面向过程编程的区别 为什么要用面向对象编程思想 面向对象的相关概念 一.面向对象编程介绍 面向对象程序设计(英语: ...
- SQL 语句与性能之联合查询和联合分类查询
select * from t1 left join t2 on t2.sysno =t1.ASysNo left join t3 on t3.sysno =t2.ASysNo left join t ...