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}) 通过…

办公技巧: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…

硬件知识:固态硬盘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…

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

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

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

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

硬件:固态硬盘SSD的基础知识及安装注意事项

固态硬盘就是用固态电子存储芯片阵列而制成的硬盘&#xff0c;相对于机械硬盘&#xff0c;固态硬盘的读写速度更快&#xff0c;但是固态硬盘的缺点是寿命不如机械硬盘。 固态硬盘有写入寿命&#xff0c;平均起来约为3000次P/E&#xff0c;1P/E为硬盘存储上限&#xff0c;相当于…

C# Redis实战(二)

二、Redis服务 在C# Redis实战(一)中我将所有文件拷贝到了D盘redis文件夹下&#xff0c;其中redis-server.exe即为其服务端程序&#xff0c;双击即开始运行&#xff0c;如图可以将此服务设置为windows系统服务&#xff0c;下载Redis服务安装软件&#xff0c;安装即可。安装完成…

matlab仿真超声波测距,超声波测距仪制作-Arduino中文社区 - Powered by Discuz!

本帖最后由 xiebb5688 于 2017-12-4 09:06 编辑虽然学的是机械&#xff0c;可也接触过C语言&#xff0c;MATLAB等程序&#xff0c;每次编程的时候&#xff0c;能够把BUG一个个解决掉&#xff0c;会带来不小的成就感。于是感觉到自己骨子还是挺喜欢代码的。于是也不知何时了解了…

电脑技巧:键盘上的这几个键,不常用,但有必要了解一下

目录 键盘上三个特殊的键 Print Screen&#xff08;或 Prt Scn&#xff09; Scroll Lock&#xff08;或 Scr Lk&#xff09; Pause/Break ​​​​​​​ 键盘上三个特殊的键 通过前几期的文章&#xff0c;我们已经讨论了几乎所有可能要用到的键。但为了真正彻底地了解键盘&…

ip访问php $_files空,PHP中表单没有问题但$_FILES为空怎么办?

PHP中表单没有问题&#xff0c;但“$_FILES”为空的解决方法&#xff1a;首先在form中加代码为“enctype"multipart/form-data”&#xff1b;然后开启“file_uploads”并设置“file_uploadson”即可。PHP中表单没有问题但是$_FILES为空的解决办法在文件上传中$_FILES接收不…

一张图看透微信公众号、企业号、小程序

对于微信小程序&#xff0c;推荐了解关键词&#xff1a;“progress web app” 我觉得微信小程序跟原生app之间也没有什么好争议的&#xff0c;就如微信和手机qq一样&#xff0c;有了微信&#xff0c;手机QQ也没有死掉&#xff0c;微信小程序适合小型应用&#xff0c;或者说能用…

电脑技巧:电脑识别不出字,一些汉字都变成框框了

目录 一、区域语言设定 二、系统内部编码 三、字体库被破坏 四、Office工具修复 五、美化主题的问题 六、中毒&#xff0c;杀毒。 电脑识别不出字&#xff0c;一些汉字都变成框框了&#xff0c;该怎么办&#xff1f; 一、区域语言设定 控制面板——区域和语言选项——选项和高级…

const没define好用 php,3分钟短文|PHP 定义常量,我该用define还是const?这下不迷茫了...

引言我们今天说一下 PHP 编程中&#xff0c;定义一个常量所使用的两种方法。有哪些区别&#xff0c;以及哪种是最佳实践&#xff1f;问题有开发者说&#xff0c;我在学习编写 PHP&#xff0c;可是定义常量的方法很是让人迷惑。比如有下面这样的写法&#xff1a;define(FOO, 1);…