hdu5301

这是一道思维题,N多个正方形铺成的矩形,其中弄坏一个点,问分割的最大的矩形中面积最小是多少,首先明确,没有坏点的时候,这个答案是不是确定的,想来想去会发现一定是确定的,最小的边+1除2,那么假如坏点之后对这个结果是如何影响的呢?假如坏点之后一定会是结果变大!

那么答案无非是五种,第一种 最小的边+1除2,坏点上下左右到边界的距离,无非是这五种按某种规则比较比较就好了。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;

int main()
{
    int n,m,x,y;
    while(scanf("%d%d%d%d",&n,&m,&x,&y)!=EOF)
    {
        if(n>m)
        {
            swap(n,m);
            swap(x,y);
        }
        int ans=0;
        if(n==1&&m==1) ans=0;
        if(n==m&&n%2&&x==(n+1)/2&&y==(m+1)/2)
        {
            printf("%d\n",n/2);
            continue;
        }
        int c0=min(x,n-x+1);
        int c1=min(y,m-y+1);
        int s=(n+1)/2;
        ans = max(s,min(n-c0,c1));
        printf("%d\n",ans);
    }
}
时间: 2024-11-12 23:54:02

hdu5301的相关文章

解题报告 之 HDU5301 Buildings

解题报告 之 HDU5301 Buildings Description Your current task is to make a ground plan for a residential building located in HZXJHS. So you must determine a way to split the floor building with walls to make apartments in the shape of a rectangle. Each buil

[2015hdu多校联赛补题]hdu5301 Buildings

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5301 题目大意:给你一块由1x1方格组成的矩形区域,其中有且仅有一个坏块,现在你要在上面建矩形的房子, 要求: 1.除坏块以外任何一个1x1方格上都要有房子覆盖 2.任何一座房子都必须有一部分作为矩形区域的边界 3.要使所建房子中面积最大的面积尽量小 要你输出这个所建房子中面积最大的那个房子的面积 解: 大概想一下,面积最大的房子肯定是1*x的长条,因为对任何y来说1*x的长条都可以拼成y*x的长条

hdu5301(2015多校2)--Buildings(构造)

Buildings Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 472    Accepted Submission(s): 104 Problem Description Your current task is to make a ground plan for a residential building located