zoukankan      html  css  js  c++  java
  • 流星雨

    时间限制:C/C++ 1秒,其他语言2秒

    空间限制:C/C++ 32768K,其他语言65536K
    64bit IO Format: %lld

    题目描述

    英仙座流星雨(学名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
    #include <bits/stdc++.h>
    
    using namespace std;
    const int maxn=1001666;
    struct node{
          int to,nx,w;
    }p[maxn];
    int dp[maxn],head[maxn],tot,s,t,n,ans;
    void addedge(int u,int v){
          p[++tot].nx=head[u],head[u]=tot,p[tot].to=v;
    }
    int main()
    {
          cin>>n;
          for(int i=1;i<=n;i++){
                scanf("%d%d",&s,&t);
                addedge(t,s);
          }
          for(int i=0;i<maxn;i++){
                for(int j=head[i];j;j=p[j].nx){
                     dp[i]=max(dp[i],dp[p[j].to]+i-p[j].to);
                }
                ans=max(ans,dp[i]);
          }
          cout<<ans<<endl;
          return 0;
    }
  • 相关阅读:
    3.5 操作系统习题
    04_jni开发常见错误_本地方法没有找到
    3.4 目录和spooling
    3.3 作业管理
    03_jni_helloworld_完成
    ASP.NET MVC 4 过滤器(Authorize)
    MVC实现实现文件流打包成压缩包
    MVC实现实现文件流打包成压缩包
    MVC实现实现文件流打包成压缩包
    图解分布式架构的演进过程!
  • 原文地址:https://www.cnblogs.com/czy-power/p/10587117.html
Copyright © 2011-2022 走看看