http://codeforces.com/group/1EzrFFyOc0/contest/734/problem/D

题意:就是给你一个很大的棋盘,给你一个白棋的位置还有n个黑棋的位置,问你黑棋能否一步就吃掉白棋

给你如下规则

1.‘B‘只能对角线移动,而且不能越过其他黑棋。

2.’R‘只能上下左右移动,而且不能越过其他黑棋。

3.‘Q’既能对角线移动又能左右移动,但是不能越过其他黑棋。

这是看了别人的代码,很长,但只是粘贴复制,再改一下一下就行了;

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<string>
#include<cmath>
#include<set>
#include<vector>
#include<stack>
#include<queue>
#include<map>
using namespace std;
#define ll long long
#define se second
#define fi first
const int INF= 0x3f3f3f3f;
const int N=5e5+; int n,x,y; struct note{
int x;
int y;
char c;
}a[N];
struct note1{
int s;
char q;
}dis[]; int main()
{
cin>>n;
cin>>x>>y; for(int i=;i<=;i++)
dis[i].s=INF<<; for(int i=;i<=n;i++)
{
cin>>a[i].c;
scanf("%d%d",&a[i].x,&a[i].y);
if( a[i].y==y && a[i].x-x> && dis[].s>a[i].x-x ){
dis[].s = a[i].x -x;
dis[].q = a[i].c; //最近的更新为 c
}
else if( a[i].y==y && x-a[i].x> && dis[].s>x-a[i].x ){
dis[].s = x- a[i].x ;
dis[].q = a[i].c; //最近的更新为 c
}
else if( a[i].x==x && a[i].y-y> && dis[].s>a[i].y-y ){
dis[].s = a[i].y -y;
dis[].q = a[i].c; //最近的更新为 c
}
else if( a[i].x==x && y-a[i].y> && dis[].s>y-a[i].y ){
dis[].s = y- a[i].y ;
dis[].q = a[i].c; //最近的更新为 c
}
else if(abs(a[i].x-x)==abs(a[i].y-y) && a[i].x>x &&a[i].y>y &&dis[].s>abs(a[i].x-x))
{
dis[].s =abs(a[i].x-x);
dis[].q = a[i].c;
}
else if(abs(a[i].x-x)==abs(a[i].y-y) && a[i].x<x &&a[i].y>y &&dis[].s>abs(a[i].x-x))
{
dis[].s =abs(a[i].x-x);
dis[].q = a[i].c;
}
else if(abs(a[i].x-x)==abs(a[i].y-y) && a[i].x<x &&a[i].y<y &&dis[].s>abs(a[i].x-x))
{
dis[].s =abs(a[i].x-x);
dis[].q = a[i].c;
}
else if(abs(a[i].x-x)==abs(a[i].y-y) && a[i].x>x &&a[i].y<y &&dis[].s>abs(a[i].x-x))
{
dis[].s =abs(a[i].x-x);
dis[].q = a[i].c;
}
}
int flag=;
for(int i=;i<=;i++)
{
if(dis[i].q=='R'||dis[i].q=='Q') flag=;
}
for(int i=;i<=;i++)
{
if(dis[i].q=='B'||dis[i].q=='Q') flag=;
}
if(flag) cout<<"YES";
else cout<<"NO";
}

Anton and Chess(模拟+思维)的更多相关文章

  1. Codeforces Round #379 (Div. 2) D. Anton and Chess 模拟

    题目链接: http://codeforces.com/contest/734/problem/D D. Anton and Chess time limit per test4 secondsmem ...

  2. D. Anton and Chess 模拟题 + 读题

    http://codeforces.com/contest/734/problem/D 一开始的时候看不懂题目,以为象是中国象棋那样走,然后看不懂样例. 原来是走对角线的,长知识了. 所以我们就知道, ...

  3. Codeforces Round #379 (Div. 2) D. Anton and Chess 水题

    D. Anton and Chess 题目连接: http://codeforces.com/contest/734/problem/D Description Anton likes to play ...

  4. 模拟+思维 HDOJ 5319 Painter

    题目传送门 /* 题意:刷墙,斜45度刷红色或蓝色,相交的成绿色,每次刷的是连续的一段,知道最终结果,问最少刷几次 模拟+思维:模拟能做,网上有更巧妙地做法,只要前一个不是一样的必然要刷一次,保证是最 ...

  5. Anton and Chess

    Anton and Chess time limit per test 4 seconds memory limit per test 256 megabytes input standard inp ...

  6. Codeforces Round #379 (Div. 2) D. Anton and Chess —— 基础题

    题目链接:http://codeforces.com/contest/734/problem/D D. Anton and Chess time limit per test 4 seconds me ...

  7. Codeforces 734D. Anton and Chess(模拟)

    Anton likes to play chess. Also, he likes to do programming. That is why he decided to write the pro ...

  8. XTUOJ 1176 I Love Military Chess(模拟)

     I Love Military Chess Accepted : 45   Submit : 141 Time Limit : 1000 MS   Memory Limit : 65536 KB ...

  9. 【29.89%】【codeforces 734D】Anton and Chess

    time limit per test4 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

随机推荐

  1. tp5博客项目实战2

    改虚拟主机 (用www.tp5.com直接访问替代localhost/blog/tp5/public) 1.host修改 位置C:\Windows\System32\drivers\etc 127.0 ...

  2. 【CUDA开发】CUDA编程接口(一)------一十八般武器

    子曰:工欲善其事,必先利其器.我们要把显卡作为通用并行处理器来做并行算法处理,就得知道CUDA给我提供了什么样的接口,就得了解CUDA作为通用高性能计算平台上的一十八般武器.(如果你想自己开发驱动,自 ...

  3. Feeding Time 【bfs求最大连通块】

    题目链接:https://ac.nowcoder.com/acm/contest/1870/J 题目大意:求最大的连通块是多大 主要是为了防止自己忘记bfs怎么写..... #include<s ...

  4. Python列表推导

    一. 列表推导式   ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数, 它以一个字符(长度为1的字符串)作为参数,返回 ...

  5. js — 基础知识

    目录 1. js的介绍 2. js的引入方式 3. js语句 4. 变量 js ( Javascript ) - 脚本语言 1. js的介绍 Javascript是一种运行在浏览器中的解释型的编程语言 ...

  6. Python笔记001-Python入门

    第一章:Python入门 1.Python介绍 1.1 简介 Python是一种解释型,面向对象的语言.由吉多·范罗苏姆(Guido van Rossum)于1989年发明,1991年正式公布.官网: ...

  7. Golang mgo 模糊查询的使用

    在日常使用的Mongodb中,有一项功能叫做模糊查询(使用正则匹配),例如: db.article.find({"title": {$regex: /a/, $options: & ...

  8. 【数据结构】P1981 表达式求值

    题目描述 给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值. 输入格式 一行,为需要你计算的表达式,表达式中只包含数字.加法运算符“++”和乘法运算符“×”,且没有括号,所有参与运算的数字 ...

  9. SVN迁移到Gitlab实践经历

    svn 迁移至git操作手册 项目交付.版本管理工具变更等情况下,迁移svn旧历史记录有很大必要,方便后续追踪文件的提交历史,文件修改记录比对等.git自带了从svn迁移至git的工具命令,可很好的对 ...

  10. archive_lag_target参数

    需求,由于一套生产环境归档日志切换频率过低,建议修改参数,使其间隔一定时间周期自动切换生成归档日志; SQL>; THREAD# SEQUENCE# TO_CHAR(COMPLETION_TIM ...