ZCMU - 4927: 剩下的树

简介: ZCMU - 4927: 剩下的树

题目链接:点击打开链接

题目大意:略。

解题思路:区间合并技巧:先按 L 升序,如果一样,按 R 升序;排序完之后,从头开始相邻之间比较:如果 L2 在 (L1,R1) 内且 R2 大于 R1,则进行合并;否则进行计数并维护 L1、R1

AC 代码

#include<bits/stdc++.h>#include<cmath>#define mem(a,b) memset(a,b,sizeof a)#define ssclr(ss) ss.clear(), ss.str("")#define INF 0x3f3f3f3f#define MOD 1000000007usingnamespacestd;
typedeflonglongll;
structnode{
intl,r;
}nds[120];
intcmp(noden1,noden2)
{
returnn1.l==n2.l?n1.r<n2.r:n1.l<n2.l;
}
intmain()
{
intn,m,l1,r1,l2,r2,rs;
while(~scanf("%d%d",&n,&m) &&n&&m)
    {
rs=0;
for(inti=0;i<m;i++)
scanf("%d%d",&nds[i].l,&nds[i].r);
sort(nds,nds+m,cmp);
l1=nds[0].l, r1=nds[0].r;
rs+=l1-0;
for(inti=1;i<m;i++)
        {
l2=nds[i].l, r2=nds[i].r;
if(l2<=r1&&r2>r1) r1=r2;
elseif(l2>r1)
            {
rs+=l2-r1-1;
l1=l2;
r1=r2;
            }
        }
rs+=n-r1;
printf("%d\n",rs);
    }
return0;
}
目录
相关文章
|
2月前
|
人工智能 测试技术 Windows
【深度优先搜索】【树】【状态压缩】2791. 树中可以形成回文的路径数
【深度优先搜索】【树】【状态压缩】2791. 树中可以形成回文的路径数
|
4月前
二叉树查找值为x的结点、树的高度、第k层结点个数的代码实现
二叉树查找值为x的结点、树的高度、第k层结点个数的代码实现
|
4月前
|
Java
如何实现一个高效的二叉搜索树(BST)?请给出时间复杂度分析。 要求:设计一个二叉搜索树,支持插入、删除和查找操作。要求在平均情况下,这些操作的时间复杂度为O(log n)。同时,考虑树的平衡性,使得树的高度保持在对数级别。
如何实现一个高效的二叉搜索树(BST)?请给出时间复杂度分析。 要求:设计一个二叉搜索树,支持插入、删除和查找操作。要求在平均情况下,这些操作的时间复杂度为O(log n)。同时,考虑树的平衡性,使得树的高度保持在对数级别。
34 0
|
2月前
|
人工智能 算法 BI
【深度优先搜索】【树】【图论】2973. 树中每个节点放置的金币数目
【深度优先搜索】【树】【图论】2973. 树中每个节点放置的金币数目
|
2月前
|
测试技术
【树】【图论】【树路径】【深度优先搜索】2867. 统计树中的合法路径数目
【树】【图论】【树路径】【深度优先搜索】2867. 统计树中的合法路径数目
|
6月前
|
算法 C语言
【数据结构】二叉树的节点数,叶子数,第K层节点数,高度,查找x节点,判断是否为完全二叉树等方法【上】
文章目录 一、二叉数的结构体 二、构建二叉树,供后续测试使用 三、二叉树销毁 四、构建节点 五、二叉树的高度: 1.代码: 2.测试结果: 二叉树节点个数 1.代码: 2.测试结果:
|
6月前
|
算法 DataX C语言
【数据结构】二叉树的节点数,叶子数,第K层节点数,高度,查找x节点,判断是否为完全二叉树等方法【下】
六、二叉树叶子节点个数 1.代码: 2.测试结果: 七、二叉树第k层节点个数 1.代码: 2.测试结果: 八、二叉树查找值为x的节点 1.代码: 2.测试结果: 九、判断二叉树是否是完全二叉树 1.代码: 2.测试结果: 十、补充:队列代码 Queue.h Queue.c
|
4月前
|
人工智能
树-堆结构练习——合并果子之哈夫曼树
树-堆结构练习——合并果子之哈夫曼树
|
9月前
|
算法
【数据结构与算法】二叉树的深度,节点数,第k层的节点数,遍历,二叉树叶节点的个数
【数据结构与算法】二叉树的深度,节点数,第k层的节点数,遍历,二叉树叶节点的个数
121 0