题目链接:hdu 4925
给定一块田,要么种苹果树初始生产1的苹果,要么帮周围的苹果树翻倍,问给定一个块地,最多能生产多少苹果。
贪心,间隔的安排即可最优
/*********************************************************************
FileName: 1005.cpp
Author: kojimai
Created Time: 2014年08月07日 星期四 12时12分02秒
*********************************************************************/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,m;
int a[6];
int judge(int x,int y)
{
int ret=0;
if(x>1)ret++;
if(x<=n-1)ret++;
if(y>1)ret++;
if(y<=m-1)ret++;
return a[ret];
}
int main()
{
int keng;
scanf("%d",&keng);a[0]=1;
a[1]=2;a[2]=4;a[3]=8;a[4]=16;
while(keng--)
{
scanf("%d%d",&n,&m);
long long ans=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if((i+j)%2==0)
{
ans+=judge(i,j);
}
}
}
cout<<ans<<endl;
}
return 0;
}