`
3virus
  • 浏览: 1071 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

2011 Asia Fuzhou Regional Contest hdu4121 Xiangqi

阅读更多

模拟

#include <iostream>
#include <cstdio>
#include <memory.h>
#include <algorithm>
#include <cmath>
#include <string>
#include <climits>
using namespace std;
const int dx[5]={0,0,0,1,-1};
const int dy[5]={0,1,-1,0,0};
const int dhx[8]={1,2,2,1,-1,-2,-2,-1};
const int dhy[8]={-2,-1,1,2,2,1,-1,-2};
const int bx[8]={1,1,1,1,-1,-1,-1,-1};
const int by[8]={-1,-1,1,1,1,1,-1,-1};
int a[20][20];
int max4(int a,int b,int c,int d)
{
    return max(max(a,b),max(c,d));
}
bool in(int x,int y)
{
    return (x>0 && x<11 && y>0 && y<10);
}
bool in_g(int x,int y)
{
    return ((y>3 && y<7 && x<4 && x>0)||(y>3 && y<7 && x<11 && x>7));
}
int main()
{
    char ch;
    int c,x0,y0,t1,t2,gx,gy;
    //while (scanf("%d%d%d",&c,&x0,&y0)!=EOF && c && x0 && y0)
    while (cin>>c>>x0>>y0 && c+x0+y0)
    {
        memset(a,-1,sizeof(a));
        for (int i=0;i<c;i++)
        {
            cin>>ch>>t1>>t2;
            //scanf("%s%d%d",ch,&t1,&t2);
            if (ch=='G'){a[t1][t2]=0;gx=t1;gy=t2;}
            else if (ch=='R') a[t1][t2]=1;
            else if (ch=='H') a[t1][t2]=2;
            else if (ch=='C') a[t1][t2]=3;
        }
        bool flag=true;

        for (int i=1;i<5;i++)
        {
            bool ju=false;
            int tx=x0+dx[i];
            int ty=y0+dy[i];
            if (!in_g(tx,ty)) continue;

            for (int j=0;j<8;j++)
            {
                int hx=tx+dhx[j];
                int hy=ty+dhy[j];
                if (!in(hx,hy)) continue;
                if (a[tx+bx[j]][ty+by[j]]==-1 && a[hx][hy]==2)
                {
                    ju=true;
                    break;
                }
            }
            if (ju) continue;

            bool j1=false;
            for (int j=1;j<=10-tx;j++)
            {

                if (a[tx+j][ty]!=-1)
                {
                    if (!j1 && a[tx+j][ty]==1) {ju=true;break;}
                    else if (!j1 && a[tx+j][ty]!=-1) {j1=true;continue;}
                    if (j1 && a[tx+j][ty]==3) {ju=true;break;}
                    else if (j1 && a[tx+j][ty]!=-1) break;
                }
            }
            if (ju) continue;

            j1=false;
            for (int j=1;j<=tx-1;j++)
            {

                if (a[tx-j][ty]!=-1)
                {
                    if (!j1 && a[tx-j][ty]==1) {ju=true;break;}
                    else if (!j1 && a[tx-j][ty]!=-1){j1=true;continue;}
                    if (j1 && a[tx-j][ty]==3) {ju=true;break;}
                    else if (j1 && a[tx-j][ty]!=-1) break;
                }
            }
            if (ju) continue;

            j1=false;
            for (int j=1;j<=9-ty;j++)
            {

                if (a[tx][ty+j]!=-1)
                {
                    if (!j1 && a[tx][ty+j]==1) {ju=true;break;}
                    else if (!j1 && a[tx][ty+j]!=-1) {j1=true;continue;}
                    if (j1 && a[tx][ty+j]==3) {ju=true;break;}
                    else if (j1 && a[tx][ty+j]!=-1) break;
                }
            }
            if (ju) continue;

            j1=false;
            for (int j=1;j<=ty-1;j++)
            {
                if (a[tx][ty-j]!=-1)
                {
                    if (!j1 && a[tx][ty-j]==1) {ju=true;break;}
                    else if (!j1 && a[tx][ty-j]!=-1) {j1=true;continue;}
                    if (j1 && a[tx][ty-j]==3) {ju=true;break;}
                    else if (j1 && a[tx][ty-j]!=-1)break;
                }
            }
            if (ju) continue;

            bool j2;//false no zi
            if (ty==gy)
            {
                j2=false;
                for (int k=tx+1;k<gx;k++)
                    if (a[k][gy]!=-1) {j2=true;break;}
            }
            else j2=true;
            if (!j2) ju=true;//can checkmate
            if (ju==false) {flag=false;break;}
        }
        if (flag) cout<<"YES"<<endl;//printf("YES\n");
        else cout<<"NO"<<endl;//printf("NO\n");
    }
    return 0;
}
分享到:
评论

相关推荐

    ruanjianceshi-fuzhou-ligong

    【标题】"ruanjianceshi-fuzhou-ligong" 暗示了这是一个关于福州理工学院的软件测试相关的主题。在IT行业中,软件测试是软件开发过程中的关键环节,确保产品的质量和性能满足用户需求。福州理工学院可能提供相关的...

    tushuguanli-xitong-fuzhou-ligong

    【标题】"tushuguanli-xitong-fuzhou-ligong" 暗示了一个关于图书馆管理系统在福州理工学院的应用或开发的项目。这个系统可能涉及到图书的借阅、归还、查询、库存管理等多种功能,服务于学校师生,提高图书馆服务...

    zaixiangouwu-xitong-anzhuo-fuzhou-ligong

    本文将深入探讨一个名为“zaixiangouwu-xitong-anzhuo-fuzhou-ligong”的在线购物系统,该系统专为安卓平台设计,由福州理工的开发团队精心打造。我们将从操作系统层面出发,解析这个系统的架构、功能以及它在实际...

    chongwu-shangcheng-fuzhou-ligong

    "chongwu-shangcheng-fuzhou-ligong"看起来像是一个地名或项目名称,而"os"标签可能指的是操作系统,但没有足够的上下文来确定具体是关于操作系统的哪个方面。至于压缩包子文件的文件名称列表,只有一个"新建文件夹...

    2011 ACM 多校联合 2011 MU11 13 FZU

    【标题】"2011 ACM 多校联合 2011 MU11 13 FZU" 指的是一项编程竞赛,ACM(国际计算机学会)每年都会举办多场这样的竞赛,旨在提升学生的算法设计和编程能力。ACM竞赛通常包括一系列的编程题目,参赛队伍需要在限定...

    福州大学电气学院2010级模电考试试卷

    《福州大学电气学院2010级模电考试试卷》是一份重要的教学参考资料,主要针对福州大学电气学院2010级学生进行模拟电子技术(模电)课程的考核。这份手抄版试卷虽然可能存在一些清晰度上的问题,但经过仔细阅读,仍然...

    3750的配置

    - `hostname fuzhou3750`:设置主机名为fuzhou3750。 - `enable password cisco`:设置使能密码为cisco。 #### 4. AAA与硬件配置 - `no aaa new-model`:取消使用新的AAA模型。 - `switch1 provision ws-c3750g-24...

    ROCKCHIP_ANDROID_8.1_BT配置说明_V1.0_201801031

    2. bluedroid 1. 硬件问题 2. 软件问题 3. 由于 android8.0 以后的蓝牙协议栈默认需要 BLE 功能,所以必须使用具备 ble 功

    Tomcat https认证

    [Unknown]: fuzhou 您所在的省/市/自治区名称是什么? [Unknown]: fuzhou 该单位的双字母国家/地区代码是什么? [Unknown]: CN CN=chen, OU=ffcs, O=ffcs, L=fuzhou, ST=fuzhou, C=CN是否正确? [否]: y ``` 确认...

    点动词和延续性动词练习题精选.doc

    6) We have been back in Fuzhou since yesterday. 7) I have been a teacher for 22 years (since 2000). 8) The river has been dirty for one year (since last year). 9) The shop has been closed for two ...

    CycleDriving-CPA-K-means--master_matlab_DEMO_

    using the methods of CPA and K-means to creat a driving cycle about Fuzhou city.there's demo and data with specific description for your reference.

    my summer holiday.docx

    7. 英语写作技巧:文档中老师批改的部分展示了英语写作的规范,例如,"the same as fuzhou" 应改为 "the same as that in fuzhou",以保持句子的准确性;"pretty delicious" 更改为 "delicious",使表达更地道。这...

    工程造价毕业生的英文简历格式.doc

    如:Graduate school: Fuzhou Software Vocational and Technical College, study calendar: Junior, major: Civil Engineering Cost, graduation year: XX。 4. **求职意向**:包括期望职位、工作性质(全职或兼职...

    字符串问题,小明去出差,中间旅游了几次

    Fuzhou Beijing Beijing Fuzhou ``` 这段代码首先定义了一个整型变量`n`来存储车票数量,然后定义了两个字符串变量`A`和`B`来临时存储每个车票的出发点和到达城市。接着,我们创建了一个`std::vector`,它包含`std:...

    谷歌天气API-C# 代码

    XmlNodeList GWP_NodeList = GoogleWeatherAPI_Parser(@"http://www.google.com/ig/api?weather=FuZhou&hl=zh-cn").SelectNodes("xml_api_reply/weather/current_conditions"); Label l = new Label(); l.Text =...

    A New 5-Aminoisophthalic Acid bridged Cobalt(II) Polymeric Complex obtained by Hydrothermal Reaction

    Fuzhou, Fujian / P.R.China, The State Key Laboratory of Structural Chemistry, Fujian Institute of Research on the Structure of Matter, the Chinese Academy of Sciences Received May 16th, 2002. ...

    水热React制得一种新型5-氨基间苯二甲酸桥连钴(II)聚合物配合物

    Fuzhou, Fujian / P.R.China, The State Key Laboratory of Structural Chemistry, Fujian Institute of Research on the Structure of Matter, the Chinese Academy of Sciences Received May 16th, 2002. ...

    hql精点查询语句.doc

    - `from Foo foo where foo.bar.baz.customer.address.city like "fuzhou%"`:查找城市名以“fuzhou”开头的Foo实例。 - `from Cat cat, Cat rival where cat.mate = rival.mate`:查找拥有相同伴侣的Cat实例对。 #...

    HQL 语句 帮助 还行

    - `from Foo foo where foo.bar.baz.customer.address.city like "fuzhou%"`:查找`city`属性为"fuzhou"的`Foo`对象。 6. **表达式**: - 支持各种比较操作,如`between`, `in`, `not between`, `not in`, `is ...

    福建省武平县七年级英语上学期第一次月考试题(无答案) 人教新目标版 试题.doc

    2. **基本词汇和短语**:题目中涉及到人物名称(如Miss Chen, Lin Tao, Rose等)、字母发音和书写(如元音字母a, e, i, o, u)、地点(如Fuzhou, Hong Kong, Xiamen)以及特定表达(如Good afternoon, How are you?...

Global site tag (gtag.js) - Google Analytics