HDU 4121 Xiangqi
模拟吧,算是。。。
被这个题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的更多相关文章
- HDU 4121 Xiangqi 模拟题
Xiangqi Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4121 ...
- HDU 4121 Xiangqi (算是模拟吧)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4121 题意:中国象棋对决,黑棋只有一个将,红棋有一个帅和不定个车 马 炮冰给定位置,这时当黑棋走,问你黑 ...
- HDU 4121 Xiangqi 我老了?
Xiangqi Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Sub ...
- HDU 4121 Xiangqi --模拟
题意: 给一个象棋局势,问黑棋是否死棋了,黑棋只有一个将,红棋可能有2~7个棋,分别可能是车,马,炮以及帅. 解法: 开始写法是对每个棋子,都处理处他能吃的地方,赋为-1,然后判断将能不能走到非-1的 ...
- HDU 4121
http://www.bnuoj.com/v3/problem_show.php?pid=10277 //#pragma comment(linker, "/STACK:16777216&q ...
- HDU 4461:The Power of Xiangqi(水题)
http://acm.hdu.edu.cn/showproblem.php?pid=4461 题意:每个棋子有一个权值,给出红方的棋子情况,黑方的棋子情况,问谁能赢. 思路:注意“ if a play ...
- HDU 4461 The Power of Xiangqi (水题)
题意:给定一些字母,每个字母都代表一值,如果字母中没有B,或者C,那么就在总值大于1的条件下删除1,然后比较大小. 析:没什么好说的,加起来比较就好了. 代码如下: #pragma comment(l ...
- HDOJ 2111. Saving HDU 贪心 结构体排序
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【HDU 3037】Saving Beans Lucas定理模板
http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...
随机推荐
- Python读写Json文件
一个小例子,使用Json配置文件 # -*- coding: utf-8 -*- import json import time def store(data): with open('data.js ...
- LeetCode_Length of Last Word
Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the l ...
- 汇编写函数:关于PUBLIC和EXTRN的区别
PUBLIC伪指令的格式:PUBLIC 标识符,标识符... 该伪指令告诉汇编程序放在PUBLIC之后的标识符(本模块的定义的)可为其他模块使用,这些标识符可以是变量.标号或者过程名.言外之意,它不仅 ...
- 将QT开发的界面程序封装成DLL,在VC中成功调用
最近手头的一个项目需要做一个QT界面,并且封装成DLL,然后再动态调用DLL给出的接口函数,使封装在DLL内部的QT界面跑起来,在网上查了很多资料,今天终于成功了,经验不敢独享,因为CSDN给了我很多 ...
- 【Xamarin挖墙脚系列:Xamarin.IOS的多个Storybord分隔视图的导航】
在实际开发中,我是推荐使用画板Storybord的.也可以适当的添加xib进行界面的绘制.尽量不要用或者少用代码绘制视图.(少一些装B分子,可以极大的缩短项目的周期). 不要讲性能,不是不讲性能,ap ...
- 1、elasticsearch简介
1.elasticsearch简介 中文帮助文档地址:http://es.xiaoleilu.com/ • Elasticsearch是一个基于Lucene的实时的分布式搜索和分析引擎.设计用于云计算 ...
- Pasha and String(思维,技巧)
Pasha and String Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u S ...
- atitit.导出excel的设计----查询结果 导出为excel的实现java .net php 总结
atitit.导出excel的设计----查询结果 导出为excel的实现java .net php 总结 1. 基本的流程 查询获得list 读取jsp的table获得标题and 字段的map to ...
- 使用java连接hive,并执行hive语句详解
安装hadoop 和 hive我就不多说了,网上太多文章 自己看去 首先,在机器上打开hiveservice hive --service hiveserver -p 50000 & 打开50 ...
- zabbix windows angent安装:
zabbix windows angent安装:1.下载zabbix agent for windows客户端,直接解压到C盘下.C:\zabbix 的目录015/04/21 11:16 <DI ...