我要日更嘤嘤嘤>_<

原题戳>>https://www.luogu.org/problem/show?pid=1803<<(其实是戳不动的,复制粘贴吧)

题目背景

快noip了,yyy很紧张!

题目描述

现在各大oj上有n个比赛,每个比赛的开始、结束的时间点是知道的。

yyy认为,参加越多的比赛,noip就能考的越好(假的)

所以,他想知道他最多能参加几个比赛。

由于yyy是蒟蒻,如果要参加一个比赛必须善始善终,而且不能同时参加2个及以上的比赛。

输入输出格式

输入格式:

第一行是一个整数n ,接下来n行每行是2个正整数ai,bi(ai<bi),表示比赛开始、结束的时间。

输出格式:

一个整数最多参加的比赛数目。

输入输出样例

输入样例#1:

  1. 3
  2. 0 2
  3. 2 4
  4. 1 3
输出样例#1:

  1. 2

说明

对于20%的数据,n≤10;

对于50%的数据,n≤1000;

对于70%的数据,n≤100000;

对于100%的数据,n≤1000000,0≤ai<bi≤1000000。

这题是一道典型的贪心入门题.但既然他被放了dp标签,就试试用dp来做吧~~~

和贪心刚开始时一样,我们先用sort把数据排一下续,定义cmp函数为

struct miku
{
int l,r;
}mk[1000005];
int cmp(miku a,miku b)
{
if(a.r==b.r) return a.l<b.l;
else return a.r<b.r;
}

之后就是递归了.a[i]表示前i场考试最多参加场次.在这里,我们需要一个参数s,它代表着必能参加a[i]的情况下最大场次数.(借助代码理解).该时刻s与i满足mk[s+1].r>mk[i].l 且mk[s].r<=mk[i].再用动态方程a[i]=max(a[i-1],a[s]+1);可求得在i场比赛中可以参加的最多场数a[i].代码如下:

  1. #include<iostream>
  2. #include<stdio.h>
  3. #include<algorithm>
  4. using namespace std;
  5. struct miku
  6. {
  7. int l,r;
  8. }mk[];
  9. int cmp(miku a,miku b)
  10. {
  11. if(a.r==b.r) return a.l<b.l;
  12. else return a.r<b.r;
  13. }
  14. int max(int a,int b)
  15. {
  16. return a>b?a:b;
  17. }
  18. int a[];
  19. int main()
  20. {
  21. int n,i,j,s,k;
  22. cin>>n;
  23. for(i=;i<=n;i++) cin>>mk[i].l>>mk[i].r;
  24. sort(mk+,mk+n+,cmp);
  25. a[]=;s=;
  26. for(i=;i<=n;i++)
  27. {
  28. while(mk[s+].r<=mk[i].l) s++;
  29. a[i]=max(a[i-],a[s]+);
  30. }
  31. cout<<a[n]<<endl;
  32. }

当然~~~有这功夫贪心一个for循环就结束了~~~~~但是这题对于理解dp还是有很大帮助的= =

じゃ まだ明日>w<

洛谷P1803 凌乱的yyy dp的更多相关文章

  1. 洛谷 P1803 凌乱的yyy Label:Water 贪心

    题目背景 快noip了,yyy很紧张! 题目描述 现在各大oj上有n个比赛,每个比赛的开始.结束的时间点是知道的. yyy认为,参加越多的比赛,noip就能考的越好(假的) 所以,他想知道他最多能参加 ...

  2. 洛谷 P1803 凌乱的yyy【经典贪心/选择不相交区间】

    题目背景 快noip了,yyy很紧张! 题目描述 现在各大oj上有n个比赛,每个比赛的开始.结束的时间点是知道的. yyy认为,参加越多的比赛,noip就能考的越好(假的) 所以,他想知道他最多能参加 ...

  3. 洛谷 P1803 凌乱的yyy

    题目背景 快noip了,yyy很紧张! 题目描述 现在各大oj上有n个比赛,每个比赛的开始.结束的时间点是知道的. yyy认为,参加越多的比赛,noip就能考的越好(假的) 所以,他想知道他最多能参加 ...

  4. 洛谷—— P1803 凌乱的yyy

    https://www.luogu.org/problem/show?pid=1803 题目背景 快noip了,yyy很紧张! 题目描述 现在各大oj上有n个比赛,每个比赛的开始.结束的时间点是知道的 ...

  5. 洛谷P1803——凌乱的yyy(贪心)

    题目描述 现在各大oj上有n个比赛,每个比赛的开始.结束的时间点是知道的. yyy认为,参加越多的比赛,noip就能考的越好(假的) 所以,他想知道他最多能参加几个比赛. 由于yyy是蒟蒻,如果要参加 ...

  6. 洛谷P1803凌乱的yyy 题解

    题目传送门 这道题也是贪心思想.先排序一遍(按照结束的时间排)在进行扫描,满足条件的直接保存,增加ans,最后输出即可. #include<bits/stdc++.h> using nam ...

  7. 洛谷 1803 凌乱的yyy

    [题意概述] 给出100W个区间,要求找出尽量多的区间满足它们互补重叠,输出最大的区间数. [题解] 贪心. 对区间按照右端点从小到大排序,然后逐个加入合法区间即可. #include<cstd ...

  8. P1803 凌乱的yyy

    P1803 凌乱的yyy 题目背景 快noip了,yyy很紧张! 题目描述 现在各大oj上有n个比赛,每个比赛的开始.结束的时间点是知道的. yyy认为,参加越多的比赛,noip就能考的越好(假的) ...

  9. 贪心思想之区间贪心 关联洛谷P1803

    力扣上也有一道类似的题 几乎是一样 输出不同 → 力扣leetcode 435. 无重叠区间 区间贪心是比较经典的 就拿洛谷P1803来举例 题目大意 n个比赛 [开始时间,结束时间] 问一个人最多能 ...

随机推荐

  1. datetime处理日期和时间

    datetime.now() # 获取当前datetimedatetime.utcnow() datetime(2017, 5, 23, 12, 20) # 用指定日期时间创建datetime 一.将 ...

  2. 20165305 实验四:Android程序设计

    实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android.组件.布局管理器的使用: 掌握Android中事件处理机制. Android Studio安装 ...

  3. GJP_Project

    1. view层作用: 视图层,即项目中的界面 l  controller层作用: 控制层, 获取界面上的数据,为界面设置数据; 将要实现的功能交给业务层处理 l  service层作用: 业务层, ...

  4. JustOj 2042: Dada的游戏

    题目描述 Dada无聊时,喜欢做一个游戏,将很多钱分成若干堆排成一列,每堆钱数不固定,谁能找出每堆钱数严格递增的最长区间,谁就是人生赢家了.Dada可能脑子里的水还没干,她找不出来,你来帮她找找吧. ...

  5. nginx FastCGI错误Primary script unknown解决办法

    在centos上成功编译安装nginx 1.4.php 5.4并成功启动nginx和php-fpm后,访问php提示"File not found.",同时在错误日志中看到: 复制 ...

  6. Linux内核线程创建

    本文旨在简单介绍一下Linux内核线程: 先举个例子: 不插U盘,在Linux命令行中输入:ps -el:然后插上U盘,再次输入:ps -el 会发现多出了下面一行(当然还会有其他的,比如scsi相关 ...

  7. LSTM算法原理理解

    神经网络 模拟人类大脑神经网络结构,每个神经元和其他的神经元相互连接,当它兴奋的时候会向相连的神经元发送化学物质,从而改变神经元的电位,当神经元的电位超过阈值,它会被激活,向其他神经元发送化学物质.其 ...

  8. JDK常用命令(三)jmap

    jmap jmap,Java Memory Map.主要用于打印指定Java进程(或核心文件.远程调试服务器)的共享对象内存映射或堆内存细节. jmap命令可以获得运行中的jvm的堆的快照,从而可以离 ...

  9. Java利用JNI调用C/C++写成的DLL

    前言 由于学期作业的要求,笔者需要开发一个语音识别系统.出于对Java的热爱,笔者非常想用Java来写上层程序(前台+数据库的三层),又要用到Microsoft Speech SDK,所以在这些条件下 ...

  10. alloc_skb申请函数分析

    alloc_skb()用于分配缓冲区的函数.由于"数据缓冲区"和"缓冲区的描述结构"(sk_buff结构)是两种不同的实体,这就意味着,在分配一个缓冲区时,需要 ...