hdu5301

来源:互联网 发布:内帐软件 编辑:程序博客网 时间:2024/05/18 10:47
   这是一道思维题,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);    }}

 

0 0
原创粉丝点击