题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5301

题目大意:给你一块由1x1方格组成的矩形区域,其中有且仅有一个坏块,现在你要在上面建矩形的房子,

要求:

1、除坏块以外任何一个1x1方格上都要有房子覆盖

2、任何一座房子都必须有一部分作为矩形区域的边界

3、要使所建房子中面积最大的面积尽量小

要你输出这个所建房子中面积最大的那个房子的面积

解:

大概想一下,面积最大的房子肯定是1*x的长条,因为对任何y来说1*x的长条都可以拼成y*x的长条

然后考虑主要用横条还是竖条来铺,全部横向的话花费是ansX=min(max(x-1, n-x+1), max(x, n-x));(这是考虑坏块的结果)

如果坏块距离上下边界比较近的时候(y<ansX || m-y+1<ansX)->即比全部横向求得的答案小的时候,可以在边界上填一些竖条使得剩下一块没有坏块的矩形,这样可以有更优的解ansX=max(min(y, m-y+1), n/2+(n & 1));

主要竖条的和横条相似,取两个方向求出来最小的那个即可

。。。还有一种特殊情况,在奇数边长的正方形中心有坏块的话,答案是x-1

 /*
* Problem:
* Author: SHJWUDP
* Created Time: 2015/9/4 星期五 19:11:14
* File Name: 1006.cpp
* State:
* Memo:
*/
#include <iostream>
#include <cstdio>
#include <vector>
#include <cstring>
#include <algorithm> using namespace std; int n, m, x, y;
int main() {
#ifndef ONLINE_JUDGE
freopen("in", "r", stdin);
//freopen("out", "w", stdout);
#endif
while(~scanf("%d%d%d%d", &n, &m, &x, &y)) {
if(n==m && (n & ) && x==y && (n+)/==x) {
printf("%d\n", x-); continue;
}
int ansX=min(max(x-, n-x+), max(x, n-x));
// cout<<"first\t"<<ansX<<endl;
if(y<ansX || m-y+<ansX) {
ansX=max(min(y, m-y+), n/+(n & ));
}
int ansY=min(max(y-, m-y+), max(y, m-y));
// cout<<"first\t"<<ansY<<endl;
if(x<ansY || n-x+<ansY) {
ansY=max(min(x, n-x+), m/+(m & ));
}
printf("%d\n", min(ansX, ansY));
}
return ;
}
/*
Sample:
in:
2 3 2 2
3 3 1 1
50 30 2 3
out:
1
2
15
*/

[2015hdu多校联赛补题]hdu5301 Buildings的更多相关文章

  1. [2015hdu多校联赛补题]hdu5384 Danganronpa

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5384 题意:函数f(A, B)定义:A.B为字符串,f(A, B)为A中有多少个不同的B(ex:f(& ...

  2. [2015hdu多校联赛补题]hdu5302 Connect the Graph

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5302 题意:给你一个无向图,它的边要么是黑色要么是白色,且图上的每个点最多与两个黑边两个白边相连.现在 ...

  3. [2015hdu多校联赛补题]hdu5378 Leader in Tree Land

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5378 题意:给你一棵n个结点的有根树.因为是有根树,那么每个结点可以指定以它为根的子树(后面讨论的子树 ...

  4. [2015hdu多校联赛补题]hdu5372 Segment Game

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5372 题意:进行n次操作,操作分两种,0和1,每一个0操作按出现顺序有一个编号(从1开始 0操作 0 ...

  5. [2015hdu多校联赛补题]hdu5371 Hotaru's problem

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5371 题意:把一个数字串A翻过来(abc翻过来为cba)的操作为-A,我们称A-AA这样的串为N-se ...

  6. [2015hdu多校联赛补题]hdu5303 Delicious Apples

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5303 题意:在一个长为L的环形路径上种着一些苹果树,告诉你苹果树的位置(题目中以0~L指示坐标)及苹果 ...

  7. [2015hdu多校联赛补题]hdu5299 Circles Game

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5299 题意: 在欧几里得平面上有n个圆,圆之间不会相交也不会相切,现在Alice和Bob玩游戏,两人轮 ...

  8. [2015hdu多校联赛补题]hdu5348 MZL's endless loop

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5348 题意:给你一个无向图,要你将无向图的边变成有向边,使得得到的图,出度和入度差的绝对值小于等于1, ...

  9. [2015hdu多校联赛补题]hdu5324 Boring Class

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5324 题意:给你一个二维的序列,让你找出最长的第一维升第二维降的子序列(如果多个答案,输出字典序最小) ...

随机推荐

  1. 创建一个List获取数据的lookup

    第一步,在类:syslookup中新建方法 public static client void lookupList(FormStringControl _formStringControl, Lis ...

  2. 解决window2012 IIS8 配置的网站无法下载exe文件的问题

    window2012 IIS8 配置网站下载exe文件.解决window2012 IIS8 配置的网站无法下载exe文件的问题 配置好网站后,无法下载网站上的exe文件,zip文件确可以下载的.右键点 ...

  3. IIS发布文件出现:未能加载文件或程序集“xxxx”或它的某一个依赖项。试图加载格式不正确的程序。

    解决方案:IIS——应用程序池—选中网站—高级设置——启用32位应用程序 :true.

  4. ubuntu 14.04 配置JavaWeb开发环境

    本人初学java web,看到网上的资料层次不齐,故总结一下经验供大家参考 1.首先安装jdk,通常可以从官网上下载安装包安装,也可以直接使用命令安装: (1)到oracle官网上下载相应版本的jdk ...

  5. mongoDB数据库

    1.mongoDB简介:mongoDB 为非关系数据库,集合(collection)关系数据库中的表,中存储的为json结构的文档,集合中的每一条记录都可以结构不同, 但必须都有_id字段(mongo ...

  6. backup3

    private void changLayoutTemp2(IActiveView activeView, IPageLayout pageLayout, IPageLayout pTempPageL ...

  7. 仿google art图片预览算法及demo(iphone/安卓版本)

    演示地址:用手机扫描二维码(手机端浏览) 功能:双击放大,单指操作拖动,双指操作放大缩小.

  8. bcm cmd

    BCM.1> port ge en=0 ;Disable all GbEBCM.1> tx 2 pbm=ge2,fe7 ;Transmit 2 packets out of both po ...

  9. SQL数据库与excel表格之间的数据 导入 导出

  10. 类似lol的友军视野怎么实现

    https://github.com/kbengine/kbengine/issues/129 你们可以按这个思路自己先改一下 例如: 可将队友的AOI实体也同步到自己的客户端中. 可对某些特定类型的 ...