首页 > 其他分享 >Air Conditioner 题解

Air Conditioner 题解

时间:2024-04-10 16:45:09浏览次数:30  
标签:node leftarrow int 题解 询问 Air 交集 flag Conditioner

[Air Conditioner]

题意简述

题目链接

给定一个整数 \(n\),每秒钟可以选择使 \(n\) 增加 \(1\) 或减少 \(1\) 或不改变,有 \(M\) 个询问,对于第 \(i\) 个询问,给定 \(t_i,l_i,r_i\),表示询问在第 \(t_i\) 秒时,是否有 \(n \in [l_i,r_i]\)。如果能满足所有的询问,输出 YES,否则输出 NO。时间从第 \(0\) 秒开始,有多组测试数据。

题目分析

设 \(L\) 表示当前 \(n\) 能达到的最小值,\(R\) 表示当前 \(n\) 能达到的最大值。

假设上一次询问的时间与这一次询问的时间差值为 \(p\),那么 \(L\leftarrow L-p,R \leftarrow R+p\)。

对于第 \(i\) 个询问我们求出 \(L,R\) 与 \(l_i,r_i\) 的交集,并将 \(L\) 赋值为交集的左端点,将 \(R\) 赋值为交集的右端点,即 \(L \leftarrow \max(L,l_i),R\leftarrow \min(R,r_i)\)。如果取完交集后发现 \(L>R\),即说明无法满足当前询问,输出 NO 并结束程序,否则继续考虑下一个询问。

Code

#include<bits/stdc++.h>
using namespace std;
int T,n,l,r;
bool flag;
struct node{
	int l,r,t;
}a[105];
bool cmp(node x,node y){
	return x.t<y.t;
}
int main(){
	cin>>T;
	while(T--){
		flag=0;
		cin>>n>>l;
		r=l;
		for(int i=1;i<=n;i++){
			cin>>a[i].t>>a[i].l>>a[i].r;
		}
		for(int i=1;i<=n;i++){
			l=l-(a[i].t-a[i-1].t);
			r=r+(a[i].t-a[i-1].t);
			l=max(l,a[i].l);
			r=min(r,a[i].r);
			if(l>r){
				puts("NO");
				flag=1;
				break;
			}
		}
		if(!flag) puts("YES");
	}
	return 0;
}

标签:node,leftarrow,int,题解,询问,Air,交集,flag,Conditioner
From: https://www.cnblogs.com/ZnHF/p/18126330

相关文章

  • Codeforces-182E 题解
    Vasyahasrecentlyboughtsomelandanddecidedtosurrounditwithawoodenfence.Hewenttoacompanycalled"Woodenboard"thatproduceswoodenboardsforfences.Vasyareadinthecatalogofproductsthatthecompanyhasatitsdisposal\(......
  • 20240410每日一题题解
    20240410每日一题题解Problem一只小猴买了若干个桃子。第一天他刚好吃了这些桃子的一半,又贪嘴多吃了一个;接下来的每一天它都会吃剩余的桃子的一半外加一个。第\(n\)天早上起来一看,只剩下\(1\)个桃子了。请问小猴买了几个桃子?输入一个正整数\(n\),表示天数。输出小猴买了多......
  • 分享30个外贸常见的问题解答
    顶易四月海关众筹活动实时参与人数已达1835,剩余名额不多。33国海关数据仅需300,一年只卖一次,需要续费/新购请抓紧时间!1、客户:我不会再为这笔订单支付更多的费用,也不接受其他条款。外贸人:下周交货期如果你能找得到其他供货商的话,我们很乐意把生产了一半的货送到另外一个供货......
  • 启动应用程序出现ieui.dll找不到问题解决
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个ieui.dll文件(挑选合适的版本文件)把它放入......
  • 启动应用程序出现inetcomm.dll找不到问题解决
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个inetcomm.dll文件(挑选合适的版本文件)把它......
  • el-table(V 2.15.14)在使用树结构表格并且设置align = 'center'后 树结构层级不明显问
    开发中遇到的小问题:如图所示三个层级区分并不明显,用户体验差解决方案:自定义CSS:首先取消此列的align="center"然后插入以下代码(此CSS为更改图示第二列的样式如果是其它列请自己获取样式名称)//标题居中::v-deepth.el-table_1_column_2.is-leaf.el-table__cell{t......
  • [ABC348] Atcoder ABC 248 A~G 题解
    [ABC348]AtcoderABC248A~G题解A模拟B模拟,不卡精度。C模拟D注意,药不可以拿着,只可以在那个格子吃掉。这就意味着,我们无论何时到达某个点,到达的点的集合都是固定的。所以对于每个药店跑BFS,然后看起点到终点是否连通即可。intn,m,k,ad[N][N],f[N][N],in[N][N],......
  • 20240409每日一题题解
    20240409每日一题题解Problem给你一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。So......
  • 问题解决 usr/include/c++/11/bits/list.tcc:344:24: error: no match for ‘operator
    1.问题解决usr/include/c++/11/bits/list.tcc:344:24:error:nomatchfor‘operator==’错误解释:这个编译错误表明编译器在尝试使用==操作符比较两个对象时找不到匹配的操作符函数。在C++中,如果你尝试比较两个自定义类型的对象,且没有为这些对象定义==操作符,编译器将无法进......
  • 【题解 | 二叉树】给定二叉树的后序遍历和中序遍历,求层序遍历结果
    树的遍历给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤......