题解:AT_abc386_d [ABC386D] Diagonal Separation

news/2025/1/4 11:12:19/文章来源:https://www.cnblogs.com/zphh/p/18646015

分析题面,发现题目求的是是否存在一个白点被 \((1, 1)\) 和任意一个黑点围成的矩形内。

先将所有黑点按 \(x\) 坐标排序。

枚举所有的白点。

找到所有横坐标不比该白点横坐标小的所有黑点的纵坐标的最大值所属点。

  • 如果该点的纵坐标小于该白点的纵坐标:

    (蓝点代表题目中的白点,红点反之)

    此时满足题目要求,枚举下一个红点。

  • 否则:

    输出 No 舍掉。

其余的输出 Yes


以上的维护方法有很多,我的方法是二分、后缀最大值,可以参考一下。

#include <bits/stdc++.h>
// #define int long long
#define pii pair<int, int>
#define FRE(x) freopen(x ".in", "r", stdin), freopen(x ".out", "w", stdout)
#define ALL(x) x.begin(), x.end()
using namespace std;int _test_ = 1;const int N = 2e5 + 5;int n, m, tb, tw, mx[N];
pii B[N], W[N]; // 黑白点void init() {}void clear() {}void solve() {cin >> n >> m;for (int i = 1; i <= m; i++) {int l, r;char c;cin >> l >> r >> c;if (c == 'B') B[++tb] = {l, r};else W[++tw] = {l, r};}sort(B + 1, B + tb + 1); // 排序for (int i = tb; i >= 1; i--) {mx[i] = max(mx[i + 1], B[i].second); // 后缀最大纵坐标}for (int i = 1; i <= tw; i++) { // 枚举白点int t = lower_bound(B + 1, B + tb + 1, W[i]) - B; // 二分第一个不比该点横坐标小的点if (mx[t] >= W[i].second) return cout << "No", void(); // 不合法就舍掉}cout << "Yes";
}signed main() {ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);
//	cin >> _test_;init();while (_test_--) {clear();solve();}return 0;
}

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

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

相关文章

【Miscellaneous】一道高质量的杂项题,涉及暴破、Cloakify-python2、零宽、emoji-AES等知识点

引言 下半年很忙,好久不做题,趁2025元旦放假整理一道高质量的题目,怀念一下繁忙的2024年。 题目 考虑到某公司的不分享精神或许会有版权之类的争端,文件链接以后就不放了。 名称:happymd5 提示:有好多奇奇怪怪的MD5值,这是用来干什么的呢。 Writeup(WP)题目附件cipher…

2025-01-01:优质数对的总数Ⅰ。用go语言,给定两个整数数组 nums1 和 nums2,分别长度为 n 和 m,以及一个正整数 k。 如果 nums1 数组中的元素 nums1[i] 能被

2025-01-01:优质数对的总数Ⅰ。用go语言,给定两个整数数组 nums1 和 nums2,分别长度为 n 和 m,以及一个正整数 k。 如果 nums1 数组中的元素 nums1[i] 能被 nums2 数组中的元素 nums2[j] 乘以 k 除尽,则称 (i, j) 为一个优质数对(其中 0 <= i <= n - 1,0 <= j …

高光谱图像选择波段的研究(转载)

高光谱图像选择波段的研究博文: 高光谱图像选择波段的研究 高光谱波段选择 LY-林雨    2016-08-25 12:08:45 发布免责声明:本文仅代表个人观点,如有错误,请读者自己鉴别;如果本文不小心含有别人的原创内容,请联系我删除;本人心血制作,若转载请注明出处 本文是根据 魏…

Webstorm 关闭 拼写错误

问题描述:cmd+,唤醒 设置把这个勾去掉就行

跨年,你怎么过

2024年最后一天,去了一趟上海的地标性建筑,感慨了下,来上海也13年来

2025.1.1 鲜花

Cdq 解决一类最值和双端点有关的数点问题Cdq 解决一类最值和双端点有关的数点问题COLORFUL BOX 真っ白な想いに 梦のかけらを 描いて 动き出す未来 子供の顷に知った 心が跃るような わくわくする感情を 今も覚えてるよ 迷いや不安はない 期待に溢れてる 何にだってなれ そうな…

Typora-Markdown使用教程

Markdown介绍 Markdown是一种轻量级的标记语言 通过简单的标记语法使文本具备一定的格式,它的目标就是实现易读,易写。 标题如上在要转为标题的前面输入一个#+一个空格,光标再定位到其他位置一个一级标题就设置好了 或者使用快捷键:Ctrl+1 总结: 一级标题:一个#,或者 Ct…

[Java/Spring] 深入理解:Spring Web DispatcherServlet

1 概述:Spring Web DispatcherServlet DispatcherServlet 简介org.springframework.web.servlet.DispatcherServlet 是一个 Servlet,它接收所有的 HTTP 请求,并根据请求的信息将其分发给相应的处理器(Handler)进行处理。 它是 Spring MVC 架构模式中的关键部分,将请求处理…

DVWA靶场File Inclusion (文件包含) 漏洞所有级别通关教程及源码解析

文件包含 文件包含漏洞(File Inclusion Vulnerability)是一种常见的网络安全漏洞,主要出现在应用程序中不安全地处理文件路径时。攻击者可以利用此漏洞执行恶意文件,或者访问不该被访问的文件 1. low 有3个页面随便点击一个,可以在url处发现传参点访问:http://127.0.0.1/…

[Java]代理模式

本篇文章主要是对静态代理和动态代理实现思路的简述,以示例为主,少涉及理论。 如果文中阐述不全或不对的,多多交流。【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/cnb-yuchen/p/18002823 出自【进步*于辰的博客】参考笔记一…

lvs+dr+httpd+keepalived高可用部署

lvs+dr+httpd+keepalived高可用部署参考文档:http://blog.csdn.net/m582445672/article/details/7670015 a、 keepalived 是lvs 的扩展项目,因此它们之间具备良好的兼容性。这点应该是keepalived 部署比其他类似工具能更简洁的原因吧! b、 通过对服务器池对象的健康检查,实…

《数字经济:行业产业链》全景梳理及区域热力图

行业主要上市公司:中兴通讯(000063)、大华股份(002236)、中科创达(300496)、软通动力(301236)、奇安信(688561)、同方股份(600100)、……等 本文核心数据:《数字经济:产业链 》、《数字经济:产业链 - 生态图谱》、《“产业数字化” 和 “数字产业化” 上市公司…