HDU 5301 思路题

给出n*m的矩阵,里面有一个坏点,不覆盖这个坏点的矩阵填满n*m的矩阵,使得这些矩阵的最大面积最小,并输出最小面积

先把矩阵转换为n<=m的矩阵,并把坏点通过镜像转移到左上方

ans=MAX(矩阵最中心点到两边距离的最小值,MIN(坏点下方的点到矩阵左端和下端的最小值));

#include "stdio.h"
#include "string.h"
int ans,n,m,x,y;
int Max(int a,int b)
{
    if (a<b) return b;
    else return  a;
}
int Min(int a,int b)
{
    if (a<b) return a;
    else return b;
}
int  judge_1()
{
    int sn,sm,mark;
    sn=n/2+1; sm=m/2+1;
    if (x>sn) x=n-x+1;
    if (y>sm) y=m-y+1;
    mark=n/2+1;
    if (x==sn && y==sm)
        return mark-1;
    else
        return Max(mark,Min(y,n-x));
}

int  judge_2()
{
    int sn,sm,mark;
    sn=n/2; sm=m/2+1;
    if (x>sn) x=n-x+1;
    if (y>sm) y=m-y+1;
    mark=n/2;
    if (x==sn && y==sm)
        return mark;
    else
        return Max(mark,Min(y,n-x));
}

int  judge_3()
{
    int sn,sm,mark;
    sn=n/2+1; sm=m/2;
    if (x>sn) x=n-x+1;
    if (y>sm) y=m-y+1;
    mark=n/2+1;
    if (x==sn && y==sm)
        return mark;
    else
        return Max(mark,Min(y,n-x));
}

int  judge_4()
{
    int sn,sm,mark;
    sn=n/2; sm=m/2;
    if (x>sn) x=n-x+1;
    if (y>sm) y=m-y+1;
    mark=n/2;
    if (x==sn && y==sm)
        return mark;
    else
        return Max(mark,Min(y,n-x));
}

int main()
{
    int temp;
    while (scanf("%d%d%d%d",&n,&m,&x,&y)!=EOF)
    {
        if (n>m) { temp=n; n=m; m=temp; temp=x; x=y; y=temp;}

        if (n<=2)
        {
            printf("1\n");
            continue;
        }

        if (n%2==1 && m%2==1)
            ans=judge_1();
        if (n%2==0 && m%2==1)
            ans=judge_2();
        if (n%2==1 && m%2==0)
            ans=judge_3();
        if (n%2==0 && m%2==0)
            ans=judge_4();

        printf("%d\n",ans);
    }
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-11 11:30:59

HDU 5301 思路题的相关文章

hdu 4908(思路题)

BestCoder Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1614    Accepted Submission(s): 566 Problem Description Mr Potato is a coder.Mr Potato is the BestCoder. One night, an amazing

hdu 5063(思路题-反向操作数组)

Operation the Sequence Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 842    Accepted Submission(s): 288 Problem Description You have an array consisting of n integers: a1=1,a2=2,a3=3,…,an=n. T

hdu 5400(思路题)

Arithmetic Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1445    Accepted Submission(s): 632 Problem Description A sequence b1,b2,?,bn are called (d1,d2)-arithmetic sequence if and on

hdu 5101(思路题)

Select Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1599    Accepted Submission(s): 443 Problem Description One day, Dudu, the most clever boy, heard of ACM/ICPC, which is a very interesting

hdu 4859(思路题)

Goffi and Squary Partition Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1171    Accepted Submission(s): 402 Problem Description Recently, Goffi is interested in squary partition of integers.

hdu 4416 水题 浙大计算机研究生复试上机考试-2005年 可是发现自己写代码有问题

Spring3与Hibernate4整合时出现了nested exception is java.lang.NoClassDefFoundError: Lorg/hibernate/cache/CacheProvider. hibernate3的时候,用spring来控制sessionfactory用的可以是org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean,因为用的是hibernate4所以照猫画

51nod P1305 Pairwise Sum and Divide ——思路题

久しぶり! 发现的一道有意思的题,想了半天都没有找到规律,结果竟然是思路题..(在大佬题解的帮助下) 原题戳>>https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1305<< 有这样一段程序,fun会对整数数组A进行求值,其中Floor表示向下取整: fun(A) sum = 0 for i = 1 to A.length for j = i+1 to A.length sum = sum + Floor(

hdu 2837 坑题。

Calculation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1414    Accepted Submission(s): 291 Problem Description Assume that f(0) = 1 and 0^0=1. f(n) = (n%10)^f(n/10) for all n bigger than ze

hdu 4883 思维题

链接:http://acm.hdu.edu.cn/showproblem.php?pid=4883 TIANKENG’s restaurant Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Submission(s): 566    Accepted Submission(s): 267 Problem Description TIANKENG manages a