最少区间覆盖问题,高分请教

hongyzniu hongyzniu 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
问题描述:
给出一些区间[Li,Ri],请你找到这些区间的一个子集,使得子集里的区间完全覆盖[0,M].

关于输入
第一行包含一个数M(1<=M<=50000).
接下来每行包含一对数Li和Ri(|Li|<=50000,|Ri|<=50000),最后以"0 0"结束.

关于输出
输出一个整数,表示最少需要多少个区间覆盖[0,M],如果无解,则输出"No solution"

例子输入
1
-1 0
0 1
0 0


下面是我写的代码,但是提交说超时了,请各位帮忙看看....


/********************************************
队列求解问题
********************************************/
#include <iostream>
#include <queue>
using namespace std;


int main()
{
int M,temp;
cin>>M;
int l,r,right,maxright=0,Count=0,j=0; //Count用作区间数记数
queue<int>q1;
int q2; //记录队列的大小
while(cin>>l>>r && !(l==0 && r==0))
{
if(l<=0)
{
if(maxright<r)maxright=r;
}
else
{
q1.push(l);
q1.push(r); //先压右边,后压左边,每次取两元素
}
}

//以上为接受输入,下面每次都将队列中的元素按照maxright作为界限分成两组
//如果上面的答案中每有产生maxright>0,那么可以肯定必然无解
//如果上面的答案中产生的maxright是介于0-M之间的数,继续下面的操作
//如产生的答案中maxright>=M,可以肯定只要一个区间就可以完全覆盖。
if(maxright==0){cout<<"No solution\n";}
else if(maxright>=M){cout<<"1\n";}
//就是用一个队列来存储那些左边比当前右边大的组合,等到后面再继续处理...
else if(maxright>0 && maxright<M)
{
Count=2;
while(!q1.empty())
{
temp=maxright;
q2=q1.size();
while(j<q2)
{
if(q1.front()<=temp)
{
if(!q1.empty()){
q1.pop();
if(q1.front()>maxright){maxright=q1.front();}
q1.pop();
j+=2;}
}
else
{
if(!q1.empty()){
q1.push(q1.front());
q1.pop();
q1.push(q1.front());
q1.pop();
j=j+2;}
}
}
if(maxright==temp){cout<<"No solution\n";break;}
else if(maxright>=M){cout<<Count<<endl;break;}
else if(maxright<M && maxright>temp)
{
Count++;j=0;
}
}
}

return 0;
}


...全文

相关推荐

基于分位数回归的电力负荷区间预测与PyTorch实现

电力系统运行中,传统点预测只能给出单一负荷值,无法量化风险,而区间预测通过输出置信区间为调度决策提供不确定性边界。分位数回归无需假设残差分布,通过不对称的pinball loss分别拟合不同分位点,可构造上下界与中位数预测。深度学习模型(如LSTM)将输出层扩展为多分位数神经元,即可在序列数据上实现区间预测,并借助PICP、PINAW与CWC等指标评估区间质量。该技术广泛应用于负荷、电价、风速等时序场景,尤其适用于电网备用容量评估与风险调度。本文从分位数损失原理、数据预处理滑窗构造,到PyTorch模型实现

佐伊23

算法实验实战:动态规划解决加权区间调度问题详解

动态规划是解决最优化问题的核心算法范式之一,其原理在于将复杂问题分解为重叠子问题,并通过存储子问题的解来避免重复计算,从而高效获得全局最优解。该技术在算法设计与分析中具有极高的技术价值,广泛应用于资源调度、路径规划、序列比对等场景。本文以经典的加权区间调度问题为切入点,深入剖析了从问题识别、贪心策略失效分析,到动态规划状态定义、状态转移方程构建以及高效预处理的完整设计链路。通过对比贪心算法与动态规划的实现与结果,并结合二分查找等优化技巧,阐述了动态规划在解决具有最优子结构问题时的工程实践方案与性能优势。

weixin_34258838

ENVI实战:高分五号02星高光谱数据从获取到地表反射率产品的完整流程

本文详细介绍了ENVI软件处理高分五号02星高光谱数据的完整流程,从数据获取到地表反射率产品的生成。涵盖数据预处理、辐射定标、FLAASH大气校正等关键步骤,并提供了实战技巧和常见问题解决方案,帮助用户高效处理高光谱数据,适用于精细地物分类、环境监测等领域。

weixin_30394981

《模式识别与数据挖掘》配套PPT课件

《模式识别与数据挖掘》配套PPT课件

Bryan Ding

科技成果转化项目进场交易前,评估备案环节需要准备哪些材料?_8.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN
评论 8
收藏 已收藏
分享
返回顶部
hongyzniu
C++ 语言 65,214 成员 250,514 内容