hdu 5301(枚举) Buildings

来源:互联网 发布:机械键盘 程序员 知乎 编辑:程序博客网 时间:2024/06/06 02:13

思路

考虑黑块的4个方向的三种情况,以及最中心那个块的情况。队友写的。

参考code:

#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e4+5;#define debug(x) cout << #x << " = " << x << endlint n,m,x,y,nx,ny;bool ok(int x,int y){    return (x  && y &&  x <= n && y <= m);}int main(){    int ans;    while( ~scanf("%d%d%d%d",&n,&m,&x,&y)){        nx = x-1;ny = y;        ans = 0;        if( ok(nx,ny))            ans = min(m-ny+1,min(ny,nx));        nx = x;ny =  y+1;        if( ok(nx,ny) )            ans = max(ans,min(n-nx+1,min(nx,m-ny+1)));        nx =x+1; ny = y;        if( ok(nx,ny) )            ans = max(ans,min(n-nx+1,min(ny,m-ny+1)));        nx = x;ny = y-1;        if( ok(nx,ny) )            ans = max(ans,min(nx,min(ny,n-nx+1)));        nx = ceil(n*1.0/2);ny = ceil(m*1.0/2);        if( ok(nx,ny) && !(nx==x &&ny == y) )            ans = max(ans,min(min(n-nx+1,m-ny+1),min(nx,ny)));        printf("%d\n",ans);    }    return 0;}
0 0
原创粉丝点击