栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 2734 Queens, Knights and ...

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 2734 Queens, Knights and ...

#include<cstdio>#include<cstring>#define MAXN 1010using namespace std;struct Piece{    int row,col;};Piece Q[MAXN],K[MAXN],P;int chess[MAXN][MAXN];int jump[8][2]={{-2,-1},{-2,1},{-1,2},{1,2},{2,1},{2,-1},{1,-2},{-1,-2}};int main(){    int i,j,k,ii,jj,n,m,qn,kn,pn,t,T;    for(T=1;scanf("%d%d",&n,&m),n+m;T++)    {        memset(chess,0,sizeof(chess));        scanf("%d",&qn);        for(i=0;i<qn;i++)        { scanf("%d%d",&Q[i].row,&Q[i].col); chess[Q[i].row][Q[i].col]=15;        }        scanf("%d",&kn);        for(i=0;i<kn;i++)        { scanf("%d%d",&K[i].row,&K[i].col); chess[K[i].row][K[i].col]=15;        }        scanf("%d",&pn);        for(i=0;i<pn;i++)        { scanf("%d%d",&P.row,&P.col); chess[P.row][P.col]=15;        }        for(qn--;qn>=0;qn--) for(k=0;k<9;k++)     if(k!=4)     {         ii=k/3-1,jj=k%3-1;         if(ii==0)  t=1;         else if(ii==jj)  t=2;         else if(jj==0)  t=4;         else  t=8;         for(i=Q[qn].row+ii,j=Q[qn].col+jj;;i+=ii,j+=jj)         {  if(i<1||j<1||i>n||j>m||(chess[i][j]&t))      break;  chess[i][j]|=t;         }     }        for(kn--;kn>=0;kn--) for(k=0;k<8;k++) {     ii=jump[k][0];     jj=jump[k][1];     i=K[kn].row+ii,j=K[kn].col+jj;     if(i<1||j<1||i>n||j>m||chess[i][j])         continue;     chess[i][j]|=15; }        for(i=1,k=0;i<=n;i++) for(j=1;j<=m;j++) {     if(!chess[i][j])         k++; }        printf("Board %d has %d safe squares.n",T,k);    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/378068.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号