CF 735D

原创 2018年04月16日 21:51:24

题意:

国际象棋规则,看黑方是否被将军

题解:

八个方向上把最近的点都记下来看看能不能凑合,有一个能凑合就可以输出YES,不然GG

#include<iostream>
#include<cmath>
using namespace std;

const long long INF=1e10+1;

struct S{
    char ch;
    long long x,y;
    S(){}
    S(long long x,long long y){
        this->x=x;
        this->y=y;
    }
}s[501000];

long long nearest[8];
int bit[8];

int main(){
    long long n;
    cin>>n;
    long long x,y;
    cin>>x>>y;
    for(int i=0;i<n;i++){
        cin>>s[i].ch>>s[i].x>>s[i].y;
    }
    for(int i=0;i<8;i++) bit[i]=-1;
    for(int i=0;i<8;i++) nearest[i]=INF;
    for(int i=0;i<n;i++){
        long long disx=abs(s[i].x-x);
        long long disy=abs(s[i].y-y);
        if(s[i].x<x&&s[i].y==y&&disx<nearest[0]){
            nearest[0]=disx;
            bit[0]=i;
        }
        if(s[i].x>x&&s[i].y==y&&disx<nearest[1]){
            nearest[1]=disx;
            bit[1]=i;
        }
        if(s[i].x==x&&s[i].y<y&&disy<nearest[2]){
            nearest[2]=disy;
            bit[2]=i;
        }
        if(s[i].x==x&&s[i].y>y&&disy<nearest[3]){
            nearest[3]=disy;
            bit[3]=i;
        }
        if(disx!=disy) continue;
        if(s[i].x<x&&s[i].y<y&&disx<nearest[4]){
            nearest[4]=disx;
            bit[4]=i;
        }
        if(s[i].x<x&&s[i].y>y&&disx<nearest[5]){
            nearest[5]=disx;
            bit[5]=i;
        }
        if(s[i].x>x&&s[i].y<y&&disx<nearest[6]){
            nearest[6]=disx;
            bit[6]=i;
        }
        if(s[i].x>x&&s[i].y>y&&disx<nearest[7]){
            nearest[7]=disx;
            bit[7]=i;
        }
    }
    for(int i=0;i<8;i++){
        int x=bit[i];
        if(x==-1) continue;
        if(i<4){
            if(s[x].ch=='Q'||s[x].ch=='R'){
                cout<<"YES"<<endl;
                return 0;
            }
        }
        else{
            if(s[x].ch=='Q'||s[x].ch=='B'){
                cout<<"YES"<<endl;
                return 0;
            }
        }
    }
    cout<<"NO"<<endl;
}

Cloud Foundry技术新纪元 2017年发展趋势前瞻

-
  • 1970年01月01日 08:00

code forces 735D 数论(哥德巴赫猜想)

哥德巴赫猜想: 当 n > 5 且 n为奇数(odd number)时, n可写成两个质数之和; 当 n > 2 且n为偶数(even number)时, n可写成三个质数之和. 本题就利用了这...
  • yo_bc
  • yo_bc
  • 2017-04-28 17:16:52
  • 159

CodeForces - 735D

Mr. Funt now lives in a country with a very specific tax laws. The total income of mr. Funt during t...
  • NineFailure
  • NineFailure
  • 2017-05-12 15:07:25
  • 112

CF与OF有什么区别?

 = 问题 =   CF与OF有什么区别?  -----------------------------------------------------------------------------...
  • w9521423
  • w9521423
  • 2006-10-02 23:07:00
  • 3693

【打CF,学算法】CodeForces网站简介

转自豆瓣:https://www.douban.com/review/5800694/ 你应当知道的关于Codeforces的事情 关于codeforces的文字 ...
  • David_Jett
  • David_Jett
  • 2016-07-12 10:11:43
  • 2146

易语言模块易语言模块

  • 2010年08月14日 23:20
  • 529KB
  • 下载

CF点充值CF点充值CF点充值CF点充值

  • 2011年03月23日 17:41
  • 674KB
  • 下载

分清iOS中的OC和CF概念

在iOS世界,主要有两种对象:Objective-C 对象和 Core Foundation 对象。Core Foundation 对象主要是由C语言实现的 Core Foundation Frame...
  • weichuang_1
  • weichuang_1
  • 2015-12-05 00:03:12
  • 886

codeforces 735D

题目链接:http://codeforces.com/problemset/problem/735/D 原来有这样一个哥德巴赫猜想       如果一个数是偶数,可以分解为2个质数之和;  1....
  • wangzhuo0978
  • wangzhuo0978
  • 2016-12-06 19:30:09
  • 133

CF卡技术详解——笔记

知识太全面了,摘抄摘不完,还是粘过来加上注释和笔记吧。 重点以及断句用加粗,注释用红括号。 一.CF卡技术及规格 一.CF卡技术及规格   ...
  • huqinweI987
  • huqinweI987
  • 2013-12-04 21:45:54
  • 16840
收藏助手
不良信息举报
您举报文章:CF 735D
举报原因:
原因补充:

(最多只允许输入30个字)