CF902A Visiting a Friend

CF902A Visiting a Friend

这道题其实还是一个模拟 (建议下降难度)

题目大意: 输入一个 nn,表示 nn 组数据,在输入 mm,表示该序列长度。 然后起始点在 00,接着输入 nn 次的 xxyy 表示在 xxyy 这个区间内的数值是可行的。最后问从 00 开始,可不可以到达终点。

这个题目,仔细审读一下便可以发现:如果可以通过,那么 xxyy 就必须覆盖到这一个区间内的每一个点上。所以我们只需要先对每一个 xxyy 之间的值变成 true,注意要判断,就是当前的点是在被标记过的范围内,才可以进行更新。最后在寻找一遍,如果有一个点是 false 的话,输出 NO 并且 exit(0)即可。最后如果都是 true 的话,输出 YES 即可

所以代码便是:

#include<bits/stdc++.h>
using namespace std;
const int N =1e6+10;
bool a[N];
int main()
{
	int n,m;
	cin>>n>>m;
	memset(a,false,sizeof(a));// 初始化
	a[0]=true;
	for(int i=1;i<=n;i++)
	{
		int x,y;
		cin>>x>>y;
		if(a[x]) //在当前的点是可以在标记的范围内
		{
			for(int j=x;j<=y;j++)	
				a[j]=true;
		}
	}
	for(int i=0;i<=m;i++)
	{
		if(a[i]==false) //当前的点没有被更新过
		{
			cout<<"NO"<<endl;
			return 0;
		}
	}
	cout<<"YES";
   return 0;
}
posted @   June_Failure  阅读(4)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示