当前位置: 首页 > news >正文

MC0461排队

码蹄集OJ-排队

问题描述

唐僧师徒四人历经千辛万苦取得真经后,天庭决定为所有参与取经的众生灵举办一场庆功宴。然而,宴会入口处有 n 个生灵排队,每个生灵都提出了自己的 “站位要求”:

  1. 金蟾精型opt = 1):“我前面至少有 x 个生灵,否则我站不稳!” 即该生灵的位置 pos 需满足 pos >= x + 1(排队位置从 1 开始计数 )。
  2. 紧箍咒型opt = 2):“我前面至多有 x 个生灵,否则我念咒头疼!” 即该生灵的位置 pos 需满足 pos <= x + 1 。
  3. 如来神掌型opt = 3):“我前面至少有 x 个生灵,至多有 y 个生灵,否则我施展不开!” 即该生灵的位置 pos 需满足 x + 1 <= pos <= y + 1 。

若存在一种排队方式,使得所有生灵的要求都得到满足,请输出 Y,否则输出 N 。

输入格式

  • 第一行一个整数 T1 ≤ T ≤ 10^6),表示测试数据组数。
  • 对于每组测试数据:
    • 第一行一个整数 n1 ≤ n ≤ 10^6)。
    • 接下来 n 行,每行第一个输入一个整数 optopt ∈ {1,2,3}),如果 opt = 1 或者 opt = 2,接着输入一个整数 x;否则如果 opt = 3,接着输入两个整数 x, y,数据满足:0 ≤ x, y < n ;分别表示每个生灵提出的要求。
  • 数据保证:∑n ≤ 10^6 。

输出格式

对于每组测试数据:输出一行一个字符 Y 或者 N,表示答案。

样例 1

输入

2
3
2 0
1 2
3 0 1
2
3 0 0
3 0 0

输出

Y
N

代码:

#include<bits/stdc++.h>
using namespace std;int n; 
struct node {int l, r; 
} a[1000010]; // 用于 sort 的比较函数,按区间左端点升序排序
bool cmp(node a, node b) 
{return a.l < b.l; 
}void solve() 
{cin >> n;int f = 1; for (int i = 1; i <= n; i++) { int op;cin >> op;if (op == 1) { int x;cin >> x;a[i].l = x + 1; a[i].r = n;     } else if (op == 2) { int x;cin >> x;a[i].l = 1;     a[i].r = x + 1; } else { int x, y;cin >> x >> y;a[i].l = x + 1; a[i].r = y + 1; if (x > y) {    f = 0;     }}}if (!f) { cout << "N\n";return;}// 按区间左端点排序sort(a + 1, a + n + 1, cmp); // 大顶堆,存储区间右端点,用于贪心选最小可行右端点priority_queue<int, vector<int>, greater<int>> q; for (int i = 1, j = 1; i <= n; i++) { // 将左端点 <= 当前位置 i 的区间,加入队列while (j <= n && a[j].l <= i) { q.push(a[j].r);j++;}if (!q.empty()) { if (q.top() >= i) { q.pop();}else { cout << "N\n";return;}} else { cout << "N\n";return;}}// 所有位置都成功分配cout << "Y\n"; 
}int main() 
{// 加速输入输出cin.tie(0), cout.tie(0); int t;cin >> t; while (t--) { solve();}return 0; 
}

http://www.lryc.cn/news/598889.html

相关文章:

  • 中央广播电视总台联合阿里云研究院权威发布《中国人工智能应用发展报告(2025)》:我国依旧需要大力注重人工智能人才的培养
  • 解决 WSL 中无法访问 registry-1.docker.io/v2/,无法用 docker 拉取 image
  • 【RAG优化】RAG应用中图文表格混合内容的终极检索与生成策略
  • 【Servo】裸机还是RTOS驱动架构如何选?
  • 解决http的web服务中与https服务交互的问题
  • 美林数据用大模型重构电能质量评估,让隐蔽合规问题无所遁形
  • Python硬件加速: JIT vs JAX
  • 20 BTLO 蓝队靶场 Sticky Situation 解题记录
  • 英语词汇积累Day11
  • 变量和函数底层工作原理
  • mac llama_index agent算术式子计算示例
  • Springmvc的自动解管理
  • 元素竖向的百分比设定是相对于父容器的高度吗?
  • 文思助手、新华妙笔 AI材料星的公文写作深度测评
  • 分布式推客系统开发全解:微服务拆分、佣金结算与风控设计
  • skywalking应用性能监控
  • iview Select的Option边框显示不全(DatePicker也会出现此类问题)
  • k8s之Ingress服务接入控制器
  • vlm MiniCPM 学习部署实战
  • MinIO Go 客户端使用详解:对象存储开发实战指南
  • 探索双链表:C语言中的链式结构魔法
  • matplotlib的详细知识点
  • AUTOSAR进阶图解==>AUTOSAR_SWS_BSWModeManager
  • ANSYS Fluent 管内流动仿真
  • MySQL 8.0 OCP 1Z0-908 题目解析(35)
  • 字符串和对象的深拷贝和浅拷贝
  • 电商接口常见误区与踩坑提醒
  • Spring Cloud Alibaba Sentinel 源码阅读之流量控制算法
  • PCL 间接平差拟合球
  • Spring MVC 统一响应格式:ResponseBodyAdvice 从浅入深