标签:des style blog http color java os io
2 2 2 3 3
8 32
枚举两种情况求最大值。。
#include"stdio.h"
#include"string.h"
#include"queue"
#include"vector"
using namespace std;
#define N 105
#define M 1000000
int g[N][N];
int n,m;
int dir[4][2]={0,1,0,-1,-1,0,1,0};
int judge(int x,int y)
{
if(x>=0&&x<n&&y>=0&&y<m)
return 1;
return 0;
}
int main()
{
int T,i,j;
int k,x,y;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
memset(g,0,sizeof(g));
__int64 ans=0,max;
ans=max=0;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if((i+j)%2) //奇数的种苹果树
g[i][j]=1;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(g[i][j]==0)
continue;
for(k=0;k<4;k++)
{
x=i+dir[k][0];
y=j+dir[k][1];
if(judge(x,y)&&g[x][y]==0)
{
g[i][j]*=2;
}
}
ans+=g[i][j];
}
}
max=ans;
ans=0;
memset(g,0,sizeof(g));
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if((i+j)%2==0) //偶数的种苹果树
g[i][j]=1;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(g[i][j]==0)
continue;
for(k=0;k<4;k++)
{
x=i+dir[k][0];
y=j+dir[k][1];
if(judge(x,y)&&g[x][y]==0)
{
g[i][j]*=2;
}
}
ans+=g[i][j];
}
}
max=max>ans?max:ans;
printf("%I64d\n",max);
}
return 0;
}
hdu 4925 Apple Tree,布布扣,bubuko.com
标签:des style blog http color java os io
原文地址:http://blog.csdn.net/u011721440/article/details/38434323