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;
}
目录
相关文章
|
7月前
|
人工智能 测试技术 Windows
【深度优先搜索】【树】【状态压缩】2791. 树中可以形成回文的路径数
【深度优先搜索】【树】【状态压缩】2791. 树中可以形成回文的路径数
|
7月前
二叉树查找值为x的结点、树的高度、第k层结点个数的代码实现
二叉树查找值为x的结点、树的高度、第k层结点个数的代码实现
|
7月前
|
存储 人工智能 算法
图与树的遍历:探索广度优先、深度优先及其他遍历算法的原理与实现
图与树的遍历:探索广度优先、深度优先及其他遍历算法的原理与实现
452 0
|
1月前
|
算法
树的遍历算法有哪些?
不同的遍历算法适用于不同的应用场景。深度优先搜索常用于搜索、路径查找等问题;广度优先搜索则在图的最短路径、层次相关的问题中较为常用;而二叉搜索树的遍历在数据排序、查找等方面有重要应用。
36 2
|
6月前
|
人工智能 算法 BI
技术心得记录:哈夫曼树及其应用
技术心得记录:哈夫曼树及其应用
79 0
|
7月前
|
人工智能 算法 BI
【深度优先搜索】【树】【图论】2973. 树中每个节点放置的金币数目
【深度优先搜索】【树】【图论】2973. 树中每个节点放置的金币数目
|
7月前
|
测试技术
【树】【图论】【树路径】【深度优先搜索】2867. 统计树中的合法路径数目
【树】【图论】【树路径】【深度优先搜索】2867. 统计树中的合法路径数目
|
7月前
|
人工智能
树-堆结构练习——合并果子之哈夫曼树
树-堆结构练习——合并果子之哈夫曼树
|
存储
认识了树,再来看看二叉树吧
认识了树,再来看看二叉树吧
132 0
认识了树,再来看看二叉树吧