首页 > 其他分享 >校门外的树2贪心

校门外的树2贪心

时间:2024-08-23 10:54:29浏览次数:14  
标签:数轴 马路上 ed 门外 整数 区域 马路 贪心

 

校门外的树2

题目描述

某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。

由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。

输入格式

第一行有两个整数L和M,L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。

输出格式

一行,这一行只包含一个整数,表示马路上剩余的树的数目。

样例输入1

500 3
150 300
100 200
470 471

样例输出1

298

注释说明

1<=L<=100000,1<=M<=100000。

#include<bits/stdc++.h>
using namespace std;
int ll,m,x,ans;
struct ed{
	int l,r;
}a[100005];
bool cmp(ed x,ed y){
	return x.l<y.l;
}
int main() {
	scanf("%d%d",&ll,&m);
	for(int i=1;i<=m;i++){
		scanf("%d%d",&a[i].l,&a[i].r);
	}
	sort(a+1,a+1+m,cmp);
	x=a[1].r;
	ans=a[1].l;
	for(int i=2;i<=m;i++){
		if(a[i].l>x+1){
			ans+=a[i].l-x-1;
			x=a[i].r;
		}
		x=max(x,a[i].r);
	}
	cout<<ans+ll-x;
}

标签:数轴,马路上,ed,门外,整数,区域,马路,贪心
From: https://blog.csdn.net/no_play_no_games/article/details/141460532

相关文章

  • 题解:Codeforces Round 967 (Div. 2) [暴力/贪心]
    A.MakeAllEqualtimelimitpertest:1secondmemorylimitpertest:256megabytesinput:standardinputoutput:standardoutputYouaregivenacyclicarray\(a_1,a_2,\ldots,a_n\).Youcanperformthefollowingoperationon\(a\)atmost\(n-......
  • KDY-补题报告D4:贪心模拟赛赛后补题报告
    在经过了整整10节课的学习之后,KDY的模拟赛还是一如既往的开始了。第一次模拟赛,写篇补题报告吧。一、比赛概况:共3题,时间75分钟,每题100分(可能吧)二、做题情况:还算可以,打了120分,不算太高,但也还行(毕竟D4的难度吗。。。)T1没分,T2100/100,T320/100。A:喷水装置(二) (喷水装置(一......
  • C240817C. 团队协作:二分答案+贪心
    C240817C.团队协作二分显然,但是被check难住了。以为只能把运动员按速度分成两类,然后二分图找最大匹配,但显然做不动。然后考场上就被卡住了………看了题解突然勾起了对一道题远古的记忆:总之也是二分之后是要看能不能全匹配上。然后当时用的就是sort之后贪心,发现这个贪心很对,......
  • 贪心-多机调度问题
    多机调度问题分析问题描述在多机调度问题中,我们有n个独立的作业和m个相同的机器。每个作业i需要处理时间ti。我们的目标是找到一个调度方案,使得所有作业尽可能快地完成。贪心策略最长处理时间优先:优先分配处理时间最长的作业到最先可用的机器上。情况分类A:n......
  • 反悔贪心 & 模拟费用流
    反悔贪心&模拟费用流参考资料来源cyt前言很多找到一种可行的方案,匹配(选择)某些东西,使价值最优化的问题可以建出费用流模型。但是直接跑费用流的复杂度是不对的。我们又想到可以用简单的贪心思路解决这些问题,然而一般的贪心都假掉了。于是我们考虑模拟费用流的退流操作来做......
  • Day31 贪心算法part5
    目录任务56.合并区间思路738.单调递增的数字思路968.监控二叉树思路任务56.合并区间以数组intervals表示若干个区间的集合,其中单个区间为intervals[i]=[starti,endi]。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。思路......
  • Day30 贪心算法part4
    目录任务452.用最少数量的箭引爆气球思路435.无重叠区间思路763.划分字母区间思路任务452.用最少数量的箭引爆气球有一些球形气球贴在一堵用XY平面表示的墙面上。墙面上的气球记录在整数数组points,其中points[i]=[xstart,xend]表示水平直径在xstart和xend之间的......
  • Day28 贪心算法part2
    任务122.买卖股票的最佳时机II给你一个整数数组prices,其中prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候最多只能持有一股股票。你也可以先购买,然后在同一天出售。返回你能获得的最大利润。思路考虑分解最终......
  • 算法-贪心
    1.分发饼干(LeetCode455)假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个尺寸s[j]。如果s[j]>=g[i],我们可以将这个饼干j分配给......
  • 可持久化可反悔贪心
    接到上级通知,贪心思路假了,紧急需要调整思路思路假了?考虑反悔while(思路==false){cout<<"思路假了"<<endl;思路=true;cout<<"改对了"<<endl;}SampleOutput思路假了改对了思路假了改对了思路假了改对了思路假了改对了思路假了改对了思路假了改对了......