模拟吧,算是。。。

被这个题wa到哭,真是什么都不想说了。。。上代码

 #include <iostream>
#include <cstring>
using namespace std; struct node {
int x,y;
char c;
}q[]; int main (){
int n,x,y;
int kase=;
int map[][];
while (cin>>n>>x>>y){
if (n+x+y==)
break ;
memset (map,,sizeof map);
for (int i=;i<n;i++){
cin>>q[i].c>>q[i].x>>q[i].y;
map[q[i].x][q[i].y]=;
}
int flag=;
for (int i=;i<n;i++){
if (q[i].c=='G'){
for (int j=q[i].x-;j>;j--){
if (map[j][q[i].y]==||map[j][q[i].y]==){
map[j][q[i].y]=;
break ;
}
if (j==x&&q[i].y==y){
flag=;
break ;
}
map[j][q[i].y]=;
}
}
else if (q[i].c=='R'){
for (int j=q[i].x-;j>;j--){
if (map[j][q[i].y]==||map[j][q[i].y]==){
map[j][q[i].y]=;
break ;
}
map[j][q[i].y]=;
}
for (int j=q[i].x+;j<;j++){
if (map[j][q[i].y]==||map[j][q[i].y]==){
map[j][q[i].y]=;
break ;
}
map[j][q[i].y]=;
}
for (int j=q[i].y-;j>;j--){
if (map[q[i].x][j]==||map[q[i].x][j]==){
map[q[i].x][j]=;
break ;
}
map[q[i].x][j]=;
}
for (int j=q[i].y+;j<;j++){
if (map[q[i].x][j]==||map[q[i].x][j]==){
map[q[i].x][j]=;
break ;
}
map[q[i].x][j]=;
}
}
else if (q[i].c=='H'){
if (map[q[i].x+][q[i].y]!=&&map[q[i].x+][q[i].y]!=){
map[q[i].x+][q[i].y+]=map[q[i].x+][q[i].y+]==||map[q[i].x+][q[i].y+]==?:;
map[q[i].x+][q[i].y-]=map[q[i].x+][q[i].y-]==||map[q[i].x+][q[i].y-]==?:;
}
if (q[i].x>&&map[q[i].x-][q[i].y]!=&&map[q[i].x-][q[i].y]!=){
map[q[i].x-][q[i].y+]=map[q[i].x-][q[i].y+]==||map[q[i].x-][q[i].y+]==?:;
map[q[i].x-][q[i].y-]=map[q[i].x-][q[i].y-]==||map[q[i].x-][q[i].y-]==?:;
}
if (map[q[i].x][q[i].y+]!=&&map[q[i].x][q[i].y+]!=){
map[q[i].x+][q[i].y+]=map[q[i].x+][q[i].y+]==||map[q[i].x+][q[i].y+]==?:;
map[q[i].x-][q[i].y+]=map[q[i].x-][q[i].y+]==||map[q[i].x-][q[i].y+]==?:;
}
if (q[i].y>&&map[q[i].x][q[i].y-]!=&&map[q[i].x][q[i].y-]!=){
map[q[i].x+][q[i].y-]=map[q[i].x+][q[i].y-]==||map[q[i].x+][q[i].y-]==?:;
map[q[i].x-][q[i].y-]=map[q[i].x-][q[i].y-]==||map[q[i].x-][q[i].y-]==?:;
}
}
else {
int temp=;
for (int j=q[i].x+;j<;j++){
if (temp==&&map[j][q[i].y]==)
map[j][q[i].y]=;
if (map[j][q[i].y]==||map[j][q[i].y]==)
temp++;
if (temp==){
map[j][q[i].y]=;
break ;
}
}
temp=;
for (int j=q[i].x-;j>;j--){
if (temp==&&map[j][q[i].y]==)
map[j][q[i].y]=;
if (map[j][q[i].y]==||map[j][q[i].y]==)
temp++;
if (temp==){
map[j][q[i].y]=;
break ;
}
}
temp=;
for (int j=q[i].y-;j>;j--){
if (temp==&&map[q[i].x][j]==)
map[q[i].x][j]=;
if (map[q[i].x][j]==||map[q[i].x][j]==)
temp++;
if (temp==){
map[q[i].x][j]=;
break ;
}
}
temp=;
for (int j=q[i].y+;j<;j++){
if (temp==&&map[q[i].x][j]==)
map[q[i].x][j]=;
if (map[q[i].x][j]==||map[q[i].x][j]==)
temp++;
if (temp==){
map[q[i].x][j]=;
break ;
}
}
}
}
if (map[x][y]==||map[x][y]==)
flag=;
if (x<)
if (map[x+][y]==||map[x+][y]==)
flag=;
if (y<)
if (map[x][y+]==||map[x][y+]==)
flag=;
if (x>)
if (map[x-][y]==||map[x-][y]==)
flag=;
if (y>)
if (map[x][y-]==||map[x][y-]==)
flag=; //for (int i=1;i<=10;i++){
// for (int j=1;j<=10;j++)
// cout<<map[i][j];
// cout<<endl;
//} //if (kase++)
// cout<<endl;
if (flag)
cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return ;
}

HDU 4121 Xiangqi的更多相关文章

  1. HDU 4121 Xiangqi 模拟题

    Xiangqi Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4121 ...

  2. HDU 4121 Xiangqi (算是模拟吧)

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4121 题意:中国象棋对决,黑棋只有一个将,红棋有一个帅和不定个车 马 炮冰给定位置,这时当黑棋走,问你黑 ...

  3. HDU 4121 Xiangqi 我老了?

    Xiangqi Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  4. HDU 4121 Xiangqi --模拟

    题意: 给一个象棋局势,问黑棋是否死棋了,黑棋只有一个将,红棋可能有2~7个棋,分别可能是车,马,炮以及帅. 解法: 开始写法是对每个棋子,都处理处他能吃的地方,赋为-1,然后判断将能不能走到非-1的 ...

  5. HDU 4121

    http://www.bnuoj.com/v3/problem_show.php?pid=10277 //#pragma comment(linker, "/STACK:16777216&q ...

  6. HDU 4461:The Power of Xiangqi(水题)

    http://acm.hdu.edu.cn/showproblem.php?pid=4461 题意:每个棋子有一个权值,给出红方的棋子情况,黑方的棋子情况,问谁能赢. 思路:注意“ if a play ...

  7. HDU 4461 The Power of Xiangqi (水题)

    题意:给定一些字母,每个字母都代表一值,如果字母中没有B,或者C,那么就在总值大于1的条件下删除1,然后比较大小. 析:没什么好说的,加起来比较就好了. 代码如下: #pragma comment(l ...

  8. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  9. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

随机推荐

  1. Python变量和数据类型

    十六进制用0x前缀和0-9 a-f表示   字符串是以''或""括起来的任意文本   一个布尔值只有True和False两种值   布尔值可以用and or not运算   空值是 ...

  2. POJ 1564 Sum It Up(DFS)

    Sum It Up Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit St ...

  3. Ucenter注册后,需要二次登录才能同步登录的解决方案

    1. 打开配置文件config.inc.php 在根目录data目录下最下方定义 define('DZ_DBTABLEPRE', '你的表前缀'); 2.打开uc_server/model/user. ...

  4. C++----练习--string 从文件中一个一个单词的读直到文件尾

    从文件中读取单词.并每行显示一个: 1. #include<iostream> #include<string> #include<vector> int main ...

  5. pm2安装及常用命令

    安装:npm install -g pm2 启动程序:pm2 start <app_name|id|all> 列举进程:pm2 list 退出程序:pm2 stop <app_nam ...

  6. Bitmap 与ImageSource之间的转换

    public class ImageConverter { [DllImport("gdi32.dll", SetLastError = true)] private static ...

  7. DEDECMS织梦全站动态化访问(包括自由列表freelist)及发布内容时自动动态化设置

    DEDECMS织梦 - 全站已有内容全部设置为动态化访问(包括自由列表freelist),以及发布内容时自动为动态化,设置分为三个步骤: 1.将所有文档设置为“仅动态”:执行以下mysql语句:upd ...

  8. Planner – 项目管理软件

    http://www.appinn.com/planner/   Planner 是一款开源.易用.跨平台的项目管理软件.@appinn 二猪用了 OpenProject 几年,现在已经受够了它的各种 ...

  9. windbg命令详解

      DLL 该扩展仅在内核模式下使用,即使它是在Ext.dll中的. Windows NT 4.0 Ext.dll Windows 2000 Ext.dll Windows XP和之后 Ext.dll ...

  10. WPF 利用子线程弹出子窗体的研究

    一般来说子线程都是用来处理数据的,主窗体用来实现展现,但是有些时候我们希望子窗体实现等待效果,遮挡主窗体并使主窗体逻辑正常进行,这个业务需求虽然不多,但是正好我们用到了,于是我打算把研究成果写在这了. ...