D. Anton and Chess 模拟题 + 读题

http://codeforces.com/contest/734/problem/D

一开始的时候看不懂题目,以为象是中国象棋那样走,然后看不懂样例。

原来是走对角线的,长知识了。

所以我们就知道,王有八个方向,所以每个方向选一个来做代表就行了。

那么选谁呢?可以排序,按照他们离王的距离从小到大排,这样就能选出最近的那个(不用被棋挡住)

然后注意下方向的表达,在王的右上角,还要和王在同一对角线才行~不能简单地判x和y的大小关系

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#define IOS ios::sync_with_stdio(false)
using namespace std;
#define inf (0x3f3f3f3f)
typedef long long int LL;#include <iostream>
#include <sstream>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <string>
const int maxn = 500000 + 20;
LL xx0, yy0;
struct node {char ch;LL x, y;node() {}node(char cc, LL xx, LL yy) : ch(cc), x(xx), y(yy) {}bool operator < (const struct node & rhs) const {LL dis = (x - xx0) * (x - xx0) + (y - yy0) * (y - yy0);LL dis2 = (rhs.x - xx0) * (rhs.x - xx0) + (rhs.y - yy0) * (rhs.y - yy0);return dis < dis2;}
}arr[maxn];
vector<struct node>pos[66];
void work() {IOS;int n;cin >> n;cin >> xx0 >> yy0;for (int i = 1; i <= n; ++i) {char str[11];cin >> str;arr[i].ch = str[0];cin >> arr[i].x >> arr[i].y;}sort(arr + 1, arr + 1 + n);
//    for (int i = 1; i <= n; ++i) {
//        cout << arr[i].ch << " " << arr[i].x << " " << arr[i].y << endl;
//    }for (int i = 1; i <= n; ++i) {int face = 0;if (arr[i].x == xx0 && arr[i].y > yy0) face = 1;else if (arr[i].x < xx0 && arr[i].y > yy0 && arr[i].x + arr[i].y == xx0 + yy0) face = 2;else if (arr[i].y == yy0 && arr[i].x < xx0) face = 3;else if (arr[i].x < xx0 && arr[i].y < yy0 && arr[i].x - arr[i].y == xx0 - yy0) face = 4;else if (arr[i].x == xx0 && arr[i].y < yy0) face = 5;else if (arr[i].x > xx0 && arr[i].y < yy0 && arr[i].x + arr[i].y == xx0 + yy0) face = 6;else if (arr[i].y == yy0 && arr[i].x > xx0) face = 7;else if (arr[i].x > xx0 && arr[i].y > yy0 && arr[i].x - arr[i].y == xx0 - yy0) face = 8;if (pos[face].size() != 0) continue;pos[face].push_back(arr[i]);}
//    cout << "fff" << endl;for (int i = 1; i <= 8; ++i) {if ((i == 1 || i == 5) && pos[i].size() && (pos[i][0].ch == 'Q' || pos[i][0].ch == 'R')) {printf("YES\n");return;} else if ((i == 2 || i == 6) && pos[i].size() && (pos[i][0].ch == 'Q' || pos[i][0].ch == 'B')) {printf("YES\n");return;} else if ((i == 3 || i == 7) && pos[i].size() && (pos[i][0].ch == 'Q' || pos[i][0].ch == 'R')) {printf("YES\n");return;} else if ((i == 4 || i == 8) && pos[i].size() && (pos[i][0].ch == 'B' || pos[i][0].ch == 'Q')) {printf("YES\n");return;}}printf("NO\n");
}int main() {
#ifdef localfreopen("data.txt","r",stdin);
#endifwork();return 0;
}
View Code

 

转载于:https://www.cnblogs.com/liuweimingcprogram/p/6068366.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/270484.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑知识:常见电脑蓝屏代码识别与处理方法

电脑蓝屏怎么办&#xff1f; 相信大家都遇到过蓝屏的问题&#xff0c; 有时候电脑用着用着就突然蓝屏了&#xff0c; 或者某天开机突然蓝屏了…… 电脑蓝屏的原因非常的多&#xff0c; 到底是什么引起的呢&#xff1f; 收集了一些最常见的几种蓝屏代码&#xff0c; 大家只需要如…

sentinel的@SentinelResource注解使用

客户自定义限流处理逻辑 创建ExceptionUtil类用于自定义限流处理逻辑 自定义限流处理类: ExceptionUtil 二&#xff1a;新增 SentinelResource注解 配置 SentinelResource(value “hello2”, blockHandler “exHandler”, blockHandlerClass {ExceptionUtil.class}) 通过…

PHP写猜数字,PHP算法之猜数字

小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个&#xff0c;小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏&#xff0c;请返回 小A 猜对了几次&#xff1f;输入的guess数组为 小A 每次的猜测&#xff0c;answer数组为 小B 每次的选择。guess和answ…

总结一年来的前端学习心得

到今天&#xff0c;前端学习刚好满一年。我也顺利从非计算机专业转到前端。对于前端学习&#xff0c;自己也是摸着石头过河&#xff0c;中间也有过困惑和迷茫。本文主要讲述自己一年来对于前端学习的心得体会&#xff0c;希望能对学习前端的人提供一些帮助。 前端主要分为三部分…

办公技巧:10个WORD神操作,值得收藏

目录 1、F4键 2、Ctrl字母快捷键 3、巧用“文档比较” 4、巧用替换功能 5、特殊字体保存 6、Word表格随心粘 7、去除超链接 8、Word图片轻松移 9、截图 10、格式刷不停 在日常办公当中&#xff0c; Word文档就是我们最常用的软件之一。用它我们写论文、写方案、写小说等等。 但…

MYSQL学习:GROUP BY分组取最新的一条记录

日常开发当中&#xff0c;经常会遇到查询分组数据中最新的一条记录&#xff0c;比如统计当前系统每个人的最新登录记录、外卖系统统计所有买家最新的一次订单记录、图书管理系统借阅者最新借阅书籍的记录等等。今天给大家介绍一下如何实现以上场景的SQL写法&#xff0c;希望对大…

@SentinelResource注解实现热点限流

下图中请求url中param参数为axb&#xff0c;如果QPS超过5&#xff0c;就会限流 一&#xff1a;如下代码 RestController public class ParamController {GetMapping("/param")SentinelResource(value "param", blockHandler "exHandler")p…

[LeetCode] 4Sum II 四数之和之二

Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] B[j] C[k] D[l] is zero. To make problem a bit easier, all A, B, C, D have same length of N where 0 ≤ N ≤ 500. All integers are in the range of…

php的正则表达式函数,php中常用的正则表达式函数

php中常用的正则表达式函数* preg_match()* preg_match_all()* preg_replace()* preg_filter()* preg_grep()* preg_split()* preg_quote()接下来对比讲解&#xff1a;讲解中 $pattern 通常表示正则表达式$subject 通常表示目标处理数据定义一个方法 方便查看数据类型&#xff…

硬件知识:固态硬盘4K对齐知识介绍

目录 1、什么是4K对齐呢&#xff1f; 2、怎么查看硬盘是否4K对齐呢&#xff1f; 3、怎么4K对齐呢&#xff1f; 现在大家基本都有一个固态硬盘&#xff0c;而在固态硬盘分区中4K对齐是非常重要的。 1、什么是4K对齐呢&#xff1f; “4K对齐”就是符合“4K扇区”定义格式化过的硬…

【spring cloud】注解@SpringCloudApplication和@SpringBootApplication的区别

SpringCloudApplication注解 注解SpringCloudApplication包括&#xff1a;SpringBootApplication、EnableDiscoveryClient、EnableCircuitBreaker&#xff0c;分别是SpringBoot注解、注册服务中心Eureka注解、断路器注解。对于SpringCloud来说&#xff0c;这是每一微服务必须应…

网络知识:路由器常见故障分析及处理方法

目录 1.路由器的部分功能无法实现 2.网络频繁掉线 3.无法浏览网页 4.某些应用无法使用 5&#xff0e;网络带宽达不到合同带宽或相差甚远 6.局域网内存在多个路由器&#xff0c;因人为原因出现二级路由 对当前的大多数网络来说&#xff0c;无论是实现网络互连还是访问Internet&a…

matlab找不到函数系统函数,求助,Matlab找不到ztrans函数

只把这个函数给你吧,你自己保存下:function F ztrans(varargin)%ZTRANS Z-transform.% F ZTRANS(f) is the Z-transform of the scalar sym f with default% independent variable n. The default return is a function of z:% f f(n) > F F(z). The Z-transfor…

硬件技巧:如何隐设置的你的电脑U盘不可见

有时候电脑里面有重要内容&#xff0c;在不联网的情况下&#xff0c;还需要禁用U盘&#xff0c;下面介绍禁用U盘的方法&#xff0c;原创文章&#xff0c;转载注明出处即可。 第一步&#xff0c;首先在电脑上点击开始按钮&#xff0c;或者直接按下快捷键组合"WinR"&am…

XidianOJ 1035 数独 1053 正数负数 1042 另一个简单的游戏

三道水题。。 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int n; int main(){while (scanf("%d",&n) ! EOF){if (n > 0){printf("yes\n");}else if (n < 0)…

Django 基本命令

1. 新建一个 django projectdjango-admin.py startproject project-name一个 project 为一个项目&#xff0c;project-name 项目名称&#xff0c;改成你自己的&#xff0c;要符合Python 的变量命名规则&#xff08;以下划线或字母开头&#xff09;2. 新建 apppython manage.py …

前端知识:如何创建自己的Iconfont图标库

在日常的开发过程中&#xff0c;前端页面经常会引用一些图标&#xff0c;iconfont图标库是前端开发者非常友好的在线字体图标库。大家可以根据平常所涉及的项目&#xff0c;收藏自己需要的图标库&#xff0c;方便在后续的项目中使用&#xff0c;今天小编给大家介绍如何通过icon…

mysql 二次 聚合,MySql-聚合查询

聚合查询Chloe 可以像写 sql 一样实现聚合查询。IQuery q context.Query();q.Select(a > Sql.Count()).First();/** SELECT COUNT(1) AS C FROM Users AS Users LIMIT 0,1*//* 支持多个聚合函数 */q.Select(a > new{Count Sql.Count(),LongCount Sql.LongCount(),Sum …