USACO2011Brownie Slicing巧克力蛋糕切片
Description
Input
Output
Solution
二分答案,然后用贪心思想来检查这个答案。注意题目中输入的a和b是分成几块而不是切几刀的意思。详解见代码。
Code
#include<iostream>
#include<cstdio>
using namespace std;
int x[][];
int r,c,a,b; bool check(int num)//二分产生的答案
{
int i=,j=,tot2=;//i,j表示当前横着切的蛋糕上下界,tot2表示横着分成了几块
while (j<=r)//然后贪心求出这块横着的蛋糕在满足num的要求的情况下,最多分成几块
{
int s=,sum=,tot=;//指针s,指向当前这刀切哪的位置,tot表示竖着切了几刀
while (s<=c)
{
for (int k=i; k<=j; k++)
sum+=x[k][s];
if (sum>=num)//满足num,竖着切下一块
{
sum=;
tot++;
}
s++;//指针后移
}
if (tot>=b) {i=j+; tot2++;}//满足竖着切b刀的条件,横着切一刀,下块蛋糕的边界调整
j++;//无论满不满足,蛋糕的边界下移
}
if (tot2>=a) return true;//满足横着切a刀的条件,返回true
else return false;
} int main()
{
int left=-,right=;
cin>>r>>c>>a>>b;
for (int i=; i<=r; i++)
for (int j=; j<=c; j++)
{
cin>>x[i][j];
right+=x[i][j];
}
int mid,st=,ans=;
while (left<=right)//注意二分的边界问题,因为这个卡一个上午
{
//if (mid==(left+right)/2) st++;
mid=(left+right)/;
if (check(mid)) {ans=mid; left=mid+;}//记录做到的最优方案
else right=mid-;
}
//if (!check(2)) cout<<"OwO"<<endl;
cout<<ans<<endl;
return ;
}
Source
http://www.lydsy.com/JudgeOnline/problem.php?id=2196
USACO2011Brownie Slicing巧克力蛋糕切片的更多相关文章
- caffe 学习(3)——Layer Catalogue
layer是建模和计算的基本单元. caffe的目录包含各种state-of-the-art model的layers. 为了创建一个caffe model,我们需要定义模型架构在一个protocol ...
- C++ 词汇表
C++词汇表 A abort() 特殊函数 如果一个函数抛出异常,但在通往异常函数的调用链中找不到与之匹配的catch,则该程序通常以此函数调用终止 abs ...
- Numpy 笔记: 多维数组的切片(slicing)和索引(indexing)【转】
目录 切片(slicing)操作 索引(indexing) 操作 最简单的情况 获取多个元素 切片和索引的同异 切片(slicing)操作 Numpy 中多维数组的切片操作与 Python 中 lis ...
- 设备、像素和点 、 9切片技术 、 颜色和外观 、 NavigationBar的美化
1 TMessage项目的输入面板界面 1.1 问题 IOS中经常会使用到九切片技术对图片进行处理.本案例使用九切片技术完成Tmessage项目的输入板界面,如图-1所示: 图-1 1.2 方案 首先 ...
- BZOJ 2196: [Usaco2011 Mar]Brownie Slicing( 二分答案 )
二分答案就可以了.... ----------------------------------------------------------------------- #include<cst ...
- 在python&numpy中切片(slice)
在python&numpy中切片(slice) 上文说到了,词频的统计在数据挖掘中使用的频率很高,而切片的操作同样是如此.在从文本文件或数据库中读取数据后,需要对数据进行预处理的操作.此时就 ...
- 『Numpy』内存分析_高级切片和内存数据解析
在计算机中,没有任何数据类型是固定的,完全取决于如何看待这片数据的内存区域. 在numpy.ndarray.view中,提供对内存区域不同的切割方式,来完成数据类型的转换,而无须要对数据进行额外的co ...
- 17 Go Slices: usage and internals GO语言切片: 使用和内部
Go Slices: usage and internals GO语言切片: 使用和内部 5 January 2011 Introduction Go's slice type provides a ...
- Python基础知识--Slice(切片)和Comprehensions(生成式)
最近在Youtube的Python视频教程上学习Python相关的基础知识,视频由Corey Schafer制作,讲得十分简单明了,英文发音也比较清晰,几乎都能听懂,是一个不错的Python入门学习的 ...
随机推荐
- linq小笔记;
1.比较LINQ to Entities的AsQueryable和AsEnumerable方法 C#程序: 复制内容到剪贴板程序代码 using (testContext context = new ...
- 白话学习MVC(九)View的呈现一
一.概述 本节来看一下ASP.NET MVC[View的呈现]的内容,View的呈现是在Action执行之后进行,Action的执行生成一个ActionResult,[View的呈现]的功能就是:通过 ...
- tableView和scrollView滚动起冲突
tableView和scrollView滚动起冲突 tableView也是继承的scrollView,所以在滚动的时候也会触发scrollView的代理方法,在scrollViewDidScroll中 ...
- TCP/IP网络编程中socket的行为
一. read/write的语义:为什么会阻塞? 先从write说起: #include <unistd.h>ssize_t write(int fd, const void *buf, ...
- [译]JavaScript规范-葵花宝典
[译]JavaScript规范 译自:https://github.com/airbnb/javascript 类型 原始值: 相当于传值 string number boolean null und ...
- [Android Tips] 12. How to Create a Dash Line Shape
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http: ...
- ThroughRain第一次冲刺总结
团队名:ThroughRain 项目确定:<餐厅到店点餐系统> 项目背景:本次项目是专门为餐厅开发的一套订餐系统.大家有没有发现在节假日去餐厅吃饭会超级麻烦,人很多, 热门的餐厅基本没有座 ...
- SQL2012新特性一次一个数据块----特殊的查询分页
对于数据库人员来说,在软件项目开发的过程中,或多或少的不可避免的就是经常遇到类似“UI查询结果设计”这样的说法,当听到UI设计的时候,多数人的第一反应是“靠!关我毛事!~这是其他人的问题!”. 然而, ...
- 搭建android开发环境
任何一个程序的开端都要从搭建开发环境开始,这样你就可以进行实战练习了,并且搭建完后即快速来一个项目HelloWorld, 哈哈,话不多说了,进入正题 android环境的安装主要分3步骤: 1.下载和 ...
- 解决Failed to allocate memory: 8转
解决Failed to allocate memory: 8 昨天换了x64的Win7,发现在Eclipse上启动模拟器的时候存在问题,当设置的模拟器分辨率大于400×800的时候会出现 Failed ...