热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

UVa10020MinimalCoverage

$UVa$$10020$题意:给你一个$0$~$m$的区间,然后给你若干线段,问你最少取多少线段可以将0~m完全覆盖分析:经典贪心模型

\(UVa\) \(10020\)

题意:

给你一个\(0\)~\(m\)的区间,然后给你若干线段,问你最少取多少线段可以将0~m完全覆盖


分析:

经典贪心模型


\(Code:\)

#include
#include
#include
#include
#include
using namespace std;
const int maxn=100010;
struct Node
{
int l,r;
bool operator <(const Node& a) const
{
return r>a.r;
}
}a[maxn];
templatevoid read(T &x)
{
bool f=0;char ch=getchar();x=0;
for(;ch<&#39;0&#39;||ch>&#39;9&#39;;ch=getchar()) if(ch==&#39;-&#39;) f=1;
for(;ch>=&#39;0&#39;&&ch<=&#39;9&#39;;ch=getchar()) x=x*10+ch-&#39;0&#39;;
if(f) x=-x;
}
int ans[maxn];
bool vis[maxn];
int main()
{
int T;
read(T);
while(T--)
{
int tot=0;
int x,y;
int m;
memset(ans,0,sizeof(ans));
memset(vis,false,sizeof(vis));
scanf("%d",&m);
while(scanf("%d%d",&x,&y)&&(x||y))
{
if(y<=0||x>=m) continue;
a[++tot].l=x,a[tot].r=y;
}
sort(a+1,a+tot+1);
int r=0;
int cnt=0;
while(r {
bool flag=false;
for(int i=1;i<=tot;++i)
{
if(!vis[i]&&a[i].l<=r&&a[i].r>r)
{
vis[i]=true;
ans[++cnt]=i;
r=a[i].r;
flag=true;
}
}
if(!flag) break;
}
if(r>=m)
{
printf("%d\n",cnt);
for(int i=1;i<=cnt;++i)
{
printf("%d %d\n",a[ans[i]].l,a[ans[i]].r);
}
}
else
{
printf("0\n");
}
}
return 0;
}


推荐阅读
  • 电子与正电子的相互作用
    本文探讨了电子与正电子之间的基本物理特性及其在现代物理学中的应用,包括它们的产生、湮灭过程以及在粒子加速器和宇宙射线中的表现。 ... [详细]
  • TunnelWarfareTimeLimit:1000MS MemoryLimit:131072KTotalSubmissions:7307 ... [详细]
  • 13、单向链表
    头文件:LinkList.hLinkList.cmain.cVS2 ... [详细]
  • 优化Nginx中PHP-FPM模块配置以提升性能
    通过调整Nginx与PHP-FPM之间的配置,可以显著提高Web服务器处理PHP请求的速度和效率。本文将详细介绍如何针对不同的应用场景优化PHP-FPM的各项关键参数。 ... [详细]
  • Sass 是一种 CSS 的预处理器,通过使用变量、嵌套、继承等高级功能,使得 CSS 的编写更加灵活和高效。本文将介绍 Sass 的基本语法及其安装使用方法。 ... [详细]
  • 深入理解SAP Fiori及其核心概念
    本文详细介绍了SAP Fiori的基本概念、发展历程、核心特性、应用类型、运行环境以及开发工具等,旨在帮助读者全面了解SAP Fiori的技术框架和应用场景。 ... [详细]
  • 这个报错出现在userDao里面,sessionfactory没有注入。解决办法:spring整合Hibernate使用test测试时要把spring.xml和spring-hib ... [详细]
  • 本文讨论了在处理分页数据时常见的低级错误,并提供了优化后的代码示例,以减少重复代码并提高可读性和维护性。 ... [详细]
  • 本文探讨了如何利用伸展树(Splay Tree)来高效地处理区间操作,包括区间修改、查询和删除等。通过引入size域,伸展树能够灵活应对序列结构的变化。 ... [详细]
  • 本文探讨了Lua中元表和元方法的使用,通过具体的代码示例展示了如何利用这些特性来实现类似C语言中的运算符重载功能。 ... [详细]
  • 探讨如何在C++中,当子类实例存储在父类类型的向量中时,正确访问子类特有的成员变量或方法。 ... [详细]
  • PHP 5.4.8 编译安装指南
    本文详细介绍了如何在Linux环境下编译安装PHP 5.4.8,并配置为FastCGI模式运行。包括所需依赖包的安装、源代码下载、编译配置及启动服务等步骤。 ... [详细]
  • 本文介绍如何在C++中通过一个实用工具类来调用其他类的方法,具体包括生成UUID和获取当前时间的功能。 ... [详细]
  • Qt应用开发:创建基本窗口
    本文介绍如何使用Qt框架创建基础窗口的两种方法。第一种方法直接在main函数中创建并显示窗口;第二种方法通过定义一个继承自QWidget的类来实现更复杂的功能。 ... [详细]
  • 本文介绍了一种算法,用于在一个给定的二叉树中找到一个节点,该节点的子树包含最大数量的值小于该节点的节点。如果存在多个符合条件的节点,可以选择任意一个。 ... [详细]
author-avatar
mobiledu2502891487
这个家伙很懒,什么也没留下!