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.pswp.cn/news/270484.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/270484.shtml
英文地址,請注明出處:http://en.pswp.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 …