1 条题解
-
0
自动搬运
来自洛谷,原作者为

微香玉烛暗
逆鳞 别碰哦搬运于
2025-08-24 21:43:58,当前版本为作者最后更新于2019-09-22 16:16:40,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
一道关于区间的简单贪心,但是有些迷惑性。很多人一看到题目就把数据按左端点排序,但是应当按右边端点,因为要求最多牛吃草时刻,所以看这头牛的结束时间,每次用开始时间比较,并更新。(初值为)
没听懂?
没关系,结合数据一起分析:2 4 1 12 4 5 7 10 7 8排序后就成了
2 4 4 5 7 8 7 10 1 12初始值为,,从第二个开始枚举。
① ,所以,
② ,所以,
③ ,不变
④ ,不变
⑤ ,不变# include <cstdio> # include <iostream> # include <algorithm> using namespace std; const int N=50005; int n,ans=1,now; struct node { int x,y; friend bool operator < (const node &p,const node &q) { return p.y<q.y; } }a[N]; /* 另一种写法cmp bool cmp (node x,node y) { return x.y<y.y; } */ int main () { scanf ("%d",&n); for (int i=1;i<=n;i++) scanf ("%d%d",&a[i].x,&a[i].y); sort (a+1,a+1+n); now=a[1].y; for (int i=2;i<=n;i++) { if (a[i].x>=now) { ans++; now=a[i].y; } }//如上分析代码实现 printf ("%d\n",ans); return 0; } //By苍空的蓝耀
- 1
信息
- ID
- 2035
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者