专栏文章
ABC434C 题解
题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mimy37yh
- 此快照首次捕获于
- 2025/12/01 17:26 3 个月前
- 此快照最后确认于
- 2025/12/01 17:26 3 个月前
分析
对于每一个限制时间点,求出从上一个限制时间点开始走可以能走到的区间,和该次限制区间的交即为该时间下可能出现的位置区间。如果不相交即为无解。
注意初始化,时间 下可能出现的区间为 。
一定注意判无解的时候还需要输入该组测试数据剩下的限制,并且如果在判断后立即输出的话需要打标记让后面仅输入。就是因为这个赛时卡了我一个多小时,交了 11 次才对。
代码
CPP#include<iostream>
using namespace std;
//#define int long long
int n,h,nowl,nowr,nowt,t;
signed main(){
cin >> t;
while(t--){
cin >> n >> h;
nowl=h;nowr=h;nowt=0;
int flag=0;
for(int i=1;i<=n;i++){
int tim,l,r;
cin >> tim >> l >> r;
if(flag==1)continue;
int tr=nowr+(tim-nowt),tl=max(nowl-(tim-nowt),1);
nowl=max(l,tl);nowr=min(r,tr);
if(nowl>nowr){
cout << "No" << endl;
flag=1;
// break;
}
nowt=tim;
}
if(flag==0)cout << "Yes" << endl;
}
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...