
https://codeforces.com/problemset/problem/1366/B
假设我们在第i次可以到达的区间是[l,r]

如果区间没有交集,则直接跳过。
#include<bits/stdc++.h>
using namespace std;
int main(void)
{
int t; cin>>t;
while(t--)
{
int n,x,m; cin>>n>>x>>m;
int l=x,r=x;
for(int i=0;i<m;i++)
{
int a,b; cin>>a>>b;
if(b<l||a>r) continue;
l=min(l,a);
r=max(r,b);
}
cout<<r-l+1<<endl;
}
return 0;
}
这段代码是用于解决一个区间覆盖问题的C++程序。给定一系列区间,程序计算最少需要多少个区间来覆盖所有可能的点。它通过迭代并更新最小和最大边界来实现。对于每个新区间,如果它与当前覆盖范围没有交集,则忽略;否则,更新覆盖范围的边界。最终输出覆盖所有可能点所需的区间长度。
3685

被折叠的 条评论
为什么被折叠?



