UVA 696 规律题

           题意:在一个n*m的网格中放尽可能多的皇后,使他们不会互相攻击。

           思路:根据样例,推出规律。http://hi.baidu.com/knowledgetime/item/87d13b1f12290a53f1090ea7

           启发:这种题,应该根据样例,摸索出基本的规律,然后分析细节。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<cstdlib>
#include<cmath>
#define LL long long
#define ULL unsigned long long
using namespace std;
int main()
{
//    freopen("in.txt","r",stdin);
    int m,n;
    while(scanf("%d%d",&m,&n)&&(m+n))
    {
        if(m==1)
            printf("%d knights may be placed on a %d row %d column board.\n",n,m,n);
        else if(n==1)
            printf("%d knights may be placed on a %d row %d column board.\n",m,m,n);
        else if(m==2)
            printf("%d knights may be placed on a %d row %d column board.\n",n/4*4+(n%4>=2?4:n%4*2),m,n);
        else if(n==2)
            printf("%d knights may be placed on a %d row %d column board.\n",m/4*4+(m%4>=2?4:m%4*2),m,n);
        else  printf("%d knights may be placed on a %d row %d column board.\n",(m*n+1)/2,m,n);
    }
    return 0;
}

  

posted @ 2014-01-22 18:03  anqier0468  阅读(192)  评论(0)    收藏  举报