链接:https://ac.nowcoder.com/acm/contest/547/D
来源:牛客网

英仙座流星雨(学名Perseids)是以英仙座γ星附近为辐射点出现的流星雨,也称英仙座γ流星雨。每年在7月20日至8月20日前后出现,于8月13日达到高潮。与象限仪座流星雨、双子座流星雨并称为北半球三大流星雨。

暑假到了,又是一个去看流星雨的好季节。

看流星雨最重要的是什么?当然是许愿。

当一颗流星出现时,可以对其许愿。

你一次可以选择一颗流星进行许愿,每一个愿望都需要一定的时间才能说完,而且中间不能有中断。
但是流星的持续时间通常都很短,很难在流星消失之前把自己的一个愿望说完。
你可以朝着新出现的流星接着许上一个未许完的愿望,当且仅当前一颗流星消失的瞬间另外一颗流星同时出现,
你不可以在一颗流星还在出现的时候转向其他的流星,这样流星之神会生气,厄运会降临
现在给你每颗流星出现和结束的时间,问你许一个愿望的最大时长是多少?

输入描述:
第一行一个数n n<=1000000

表示流星的数目

接下来每行2个数字 x,y (0<=x,y<=1001000 )

表示流星出现的时间和结束的时间
输出描述:
一个数字,表示最长可以连续许愿的时间
示例1
输入
复制
3
2 3
2 4
1 2
输出
复制
3
说明
1~4

解析

是一道比较简单的dp
用dp[i]表示i可以延伸到的最小的位置即可
状态转移方程为
dp[app[i].r]=min(dp[app[i].r],dp[app[i].l]);
对结构体排序只要按照(l或者r)从小打大即可
因为每一次状态转移方程用到的l和r都是比当前小的

#include<bits/stdc++.h>
using namespace std;
const int N=1000000+1100;
int dp[N],no[N];
struct node{int l,r;
}app[N];
bool cmp(node a,node b){return a.r<b.r;
}
int main()
{ios::sync_with_stdio(false);int n;cin>>n;for(int i=0;i<n;i++){cin>>app[i].l>>app[i].r;dp[app[i].l]=app[i].l;dp[app[i].r]=app[i].l;}sort(app,app+n,cmp);int mx=0;for(int i=0;i<n;i++) {dp[app[i].r]=min(dp[app[i].r],dp[app[i].l]);mx=max(app[i].r-dp[app[i].r],mx);}cout<<mx<<endl;return 0;
}

java超时版本。。。

package myproject;
import java.io.BufferedReader;
import java.io.*;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
class node implements Comparable<node>
{int l,r;public node(int l,int r) {this.l=l;this.r=r;}public int compareTo(node o) {return this.l-o.l;}}
public class Main {static int N=1000000+1100;static int []dp=new int [N];static node []no=new node [N];//dp[i]表示i最早的起点public static void main(String []args) throws IOException {BufferedReader br=new BufferedReader(new InputStreamReader(System.in));String str=br.readLine();int n=Integer.parseInt(str);for(int i=0;i<n;i++) {str=br.readLine();String []s=str.split(" ");int x =Integer.parseInt(s[0]);int y=Integer.parseInt(s[1]);no[i]=new node(x,y);dp[x]=x;dp[y]=x;}Arrays.sort(no,0,n);int max=0;for(int i=0;i<n;i++) {dp[no[i].r]=Math.min(dp[no[i].r],dp[no[i].l]);max=Math.max(no[i].r-dp[no[i].r],max);}System.out.println(max);}
}

牛客 流星雨(dp)相关推荐

  1. codeforces(牛客网dp专题,排序)

    链接:https://ac.nowcoder.com/acm/problem/21314 来源:牛客网 牛牛正在打一场CF 比赛时间为T分钟,有N道题,可以在比赛时间内的任意时间提交代码 第i道题的分 ...

  2. 牛客网dp专题 数位dp

    文章目录 数位dp 例题: NC116652 uva11038 How many 0's NC15035 送分了QAQ NC20669 诡异数字 NC20665 7的意志 NC17385 Beauti ...

  3. 牛客网——流星雨(dp)

    链接:https://ac.nowcoder.com/acm/contest/547/D 来源:牛客网 题目描述 英仙座流星雨(学名Perseids)是以英仙座γ星附近为辐射点出现的流星雨,也称英仙座 ...

  4. 牛客算法周周练2 B Music Problem(DP,抽屉原理,二进制拆分)

    链接:https://ac.nowcoder.com/acm/contest/5203/B 来源:牛客网 题目描述 Listening to the music is relax, but for o ...

  5. 【牛客每日一题】4.15 Treepath 题解(树上dfs/树形DP)

    题目链接:https://ac.nowcoder.com/acm/problem/14248 来源:牛客网 题目描述 给定一棵n个点的树,问其中有多少条长度为偶数的路径.路径的长度为经过的边的条数.x ...

  6. 牛客 contest897 C-Latale(树上dp)

    题意 N个节点的树,每条边有条权值,问有多少个点对(U,V)(U, V)(U,V),使得UUU到VVV的距离是3的倍数. 思路 dfs1dfs1dfs1处理每个节点包含子树的dis[dis[%3 = ...

  7. 牛客练习赛34 E little w and Digital Root(数位dp)

    title: 牛客练习赛34 E little w and Digital Root(数位dp) date: 2018-12-17 22:38:37 tags: 数位dp categories:ACM ...

  8. 牛客假日团队赛5 F 随机数 BZOJ 1662: [Usaco2006 Nov]Round Numbers 圆环数 (dfs记忆化搜索的数位DP)...

    链接:https://ac.nowcoder.com/acm/contest/984/F 来源:牛客网 随机数 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6 ...

  9. 牛客假日团队赛10 L 乘积最大 (dp,大数)

    链接:https://ac.nowcoder.com/acm/contest/1072/L?&headNav=acm&headNav=acm 来源:牛客网 乘积最大 时间限制:C/C+ ...

最新文章

  1. PNAS顶刊文:情侣分手3个月前就有预兆!聊天记录还能反映分手后遗症
  2. Hyperledger Fabric SDK Go构建第一个应用
  3. 中国工程院谭建荣:人工智能应用得再好,最核心的算法不行,创新能力就不行丨MEET2021...
  4. GDCM:Dicom文件重复的PCDE测试程序
  5. 组合数据类型练习、英语词频统计
  6. OpenStack Heat服务介绍 (三)
  7. [恢]hdu 2147
  8. pytorch1.7教程实验——DCGAN生成对抗网络
  9. 学习记录—HTML标签
  10. 聊天宝解散,多闪、马桶MT还会远吗?| 畅言
  11. 每天一个linux命令(5):in命令
  12. Django模板语言(DTL)
  13. vector容器中是否应该放指针?解决方法
  14. Python_随笔笔记_Python基础1
  15. zuul网关,springsecurity认证中心 和 Swagger2 整合遇到的问题
  16. 服务器维护需要log日志,IBM HTTP server for i的日志维护
  17. 用汇编语言实现c语言程序例题,C语言详细例题大全
  18. pta初级题库151-200
  19. Crossplane - 比 Terraform 更先进的云基础架构管理平台?
  20. c语言中wait用法及意思,wait的用法总结大全

热门文章

  1. (转) Quick Guide to Build a Recommendation Engine in Python
  2. Chorme中好用的插件
  3. java生成excel格式xlsx
  4. 交通事故检测识别笔记
  5. Android矢量图形-Vector
  6. linux 天堂测试软件,从天堂到山谷!Unigine发布新测试软件
  7. 263云通信严防泄密 守护企业门户
  8. “聚力远谋,创赢未来”坤前全国巡展广州站圆满落幕
  9. excel vba打印
  10. 外贸独立站运营注意事项