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. java类加载全过程

    引用:http://blog.csdn.net/haluoluo211/article/details/49908463 http://www.cnblogs.com/pengfeiliu/p/442 ...

  2. jQuery禁用input历史选择

    $("#id").attr("autocomplete", "off");

  3. 1024多人激情在线聊天室---select函数的使用

    效果展示 step1.服务器启动!端口号3006 step2.1号客户端启动!jack加入了群聊 step3.2号客户端启动!kelly加入了群聊 step4.3号客户端启动!zwj加入了群聊 ste ...

  4. Max coverage disjoint intervals

    Assume you have k<=10^5 intervals [a_i, b_i] \in [1,10^18] (some of them may overlap), and you ne ...

  5. [转帖]拿小本本记下的Linux Shell常用技巧(一)

    拿小本本记下的Linux Shell常用技巧(一) https://zhuanlan.zhihu.com/p/73361101 一. 特殊文件: /dev/null和/dev/tty Linux系统提 ...

  6. [转帖]APP逆向神器之Frida【Android初级篇】

    APP逆向神器之Frida[Android初级篇] https://juejin.im/post/5d25a543e51d455d6d5358ab 说到逆向APP,很多人首先想到的都是反编译,但是单看 ...

  7. [转帖]Linux修改时区的正确方法

    Linux修改时区的正确方法 /etc/localtime 以及timedatectl 两种方式修改时区. CentOS和Ubuntu的时区文件是/etc/localtime,但是在CentOS7以后 ...

  8. LC 21. Merge Two Sorted Lists

    题目描述 Merge two sorted linked lists and return it as a new list. The new list should be made by splic ...

  9. 斜率优化dp学习笔记 洛谷P3915[HNOI2008]玩具装箱toy

    本文为原创??? 作者写这篇文章的时候刚刚初一毕业…… 如有错误请各位大佬指正 从例题入手 洛谷P3915[HNOI2008]玩具装箱toy Step0:读题 Q:暴力? 如果您学习过dp 不难推出d ...

  10. go实现简单的tcp编程

    服务端的代码 package main import ( "fmt" "net" ) func main () { fmt.Println("star ...