码迷,mamicode.com
首页 > 移动开发 > 详细

hdu 4925 Apple Tree

时间:2014-08-07 23:07:25      阅读:306      评论:0      收藏:0      [点我收藏+]

标签:acm   algorithm   

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

思路:直接计算坐标和,如果为奇数就种树,但要注意行或列为1的情况。

写啦两种代码:一种直接判断计算的,另一种优化计算的

code1:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>

using namespace std;

int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int n,m,i,j;
        while(scanf("%d%d",&n,&m)==2)
        {
            int sum=0;
            if(n==1&&m==1)   //特殊情况
            {
                printf("1\n");
            }
            else if(n==1||m==1)   //特殊情况
            {
                if(m==1)
                {
                    int t=n;
                    n=m;
                    m=t;
                }
                if(m%2==0)
                {
                    sum=sum+(m-1)*2;
                }
                else
                {
                    sum+=(m/2*4);
                }
                printf("%d\n",sum);
            }
            else
            {
                for(i=1;i<=n;i++)
                {
                    for(j=1;j<=m;j++)
                    {
                        if((i+j)%2==1)
                        {
                            if(i==1||i==n)
                            {
                                if(j==1||j==m)
                                {
                                    sum+=4;
                                }
                                else
                                {
                                    sum+=8;
                                }
                            }
                            else if(j==1||j==m)
                            {
                                if(i==1||i==n)
                                    sum+=4;
                                else
                                {
                                   sum+=8;
                                }

                            }
                            else //if(i!=1&&i!=n&&j!=1&&j!=m)
                            {
                                sum+=16;
                            }
                        }
                    }
                }
                printf("%d\n",sum);
            }
        }
    }
    return 0;
}

code2:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>

using namespace std;

int a[110][110];

int main()
{
    int T,n,m;
    scanf("%d",&T);
    while(T--)
    {
        int n,m,sum=0;
        scanf("%d%d",&n,&m);
        if(n==1&&m==1)
        {
            printf("1\n");
        }
        else if(n==1||m==1)
        {
            if(m==1)
            {
                int t=n;
                n=m;
                m=t;
            }
            if(m%2==0)
            {
                sum=sum+(m-1)*2;
            }
            else
            {
                sum+=(m/2*4);
            }
            printf("%d\n",sum);
        }
        else
        {
            if(n%2==1)
            {
                int t=n;
                n=m;
                m=t;
            }
            if(m%2==0)
            {
                sum+=((m-1)*8);
                //printf("BB %d\n",sum);
                sum+=((m/2-1)*(n-2)*16+(n-2)*8);
                //printf("BB %d\n",sum);
            }
            else
            {
                if(n%2==0)
                {
                    sum+=((m-1)*8);
                    sum+=((n-2)/2*(m-2)*16);
                    sum+=((n-2)*8);
                }
                else
                {
                    sum+=(m/2*16);
                    //printf("AA %d\n",sum);
                    sum+=((n-2)/2*(m-2)*16);
                    //printf("BB %d\n",sum);
                    sum+=((m-2)/2*16);
                    //printf("CC %d\n",sum);
                    sum+=((n-1)*8);
                    //printf("DD %d\n",sum);
                }
            }
            printf("%d\n",sum);

        }
    }
    return 0;
}


hdu 4925 Apple Tree,布布扣,bubuko.com

hdu 4925 Apple Tree

标签:acm   algorithm   

原文地址:http://blog.csdn.net/u010304217/article/details/38426279

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!