zoukankan      html  css  js  c++  java
  • 1664: [Usaco2006 Open]County Fair Events 参加节日庆祝

    1664: [Usaco2006 Open]County Fair Events 参加节日庆祝

    Time Limit: 5 Sec  Memory Limit: 64 MB
    Submit: 255  Solved: 185
    [Submit][Status][Discuss]

    Description

    Farmer John has returned to the County Fair so he can attend the special events (concerts, rodeos, cooking shows, etc.). He wants to attend as many of the N (1 <= N <= 10,000) special events as he possibly can. He's rented a bicycle so he can speed from one event to the next in absolutely no time at all (0 time units to go from one event to the next!). Given a list of the events that FJ might wish to attend, with their start times (1 <= T <= 100,000) and their durations (1 <= L <= 100,000), determine the maximum number of events that FJ can attend. FJ never leaves an event early.

    有N个节日每个节日有个开始时间,及持续时间. 牛想尽可能多的参加节日,问最多可以参加多少. 注意牛的转移速度是极快的,不花时间.

    Input

    * Line 1: A single integer, N.

    * Lines 2..N+1: Each line contains two space-separated integers, T and L, that describe an event that FJ might attend.

    Output

    * Line 1: A single integer that is the maximum number of events FJ can attend.

    Sample Input

    7
    1 6
    8 6
    14 5
    19 2
    1 8
    18 3
    10 6

    INPUT DETAILS:

    Graphic picture of the schedule:
    11111111112
    12345678901234567890---------这个是时间轴.
    --------------------
    111111 2222223333344
    55555555 777777 666

    这个图中1代表第一个节日从1开始,持续6个时间,直到6.

    Sample Output

    4

    OUTPUT DETAILS:

    FJ can do no better than to attend events 1, 2, 3, and 4.

    HINT

     

    Source

    Silver

    题解:一个考得烂了的贪心,很经典的最多不向交区间问题而已

     1 /**************************************************************
     2     Problem: 1664
     3     User: HansBug
     4     Language: Pascal
     5     Result: Accepted
     6     Time:28 ms
     7     Memory:1008 kb
     8 ****************************************************************/
     9  
    10 var
    11    i,j,k,l,m,n:longint;
    12    a:array[0..100005,1..2] of longint;
    13 procedure swap(var x,y:longint);
    14           var z:longint;
    15           begin
    16                z:=x;x:=y;y:=z;
    17           end;
    18 procedure sort(l,r:longint);
    19           var i,j,x,y:longint;
    20           begin
    21                i:=l;j:=r;x:=a[(l+r) div 2,2];y:=a[(l+r) div 2,1];
    22                repeat
    23                      while (a[i,2]<x) or ((a[i,2]=x) and (a[i,1]>y)) do inc(i);
    24                      while (a[j,2]>x) or ((a[j,2]=x) and (a[j,1]<y)) do dec(j);
    25                      if i<=j then
    26                         begin
    27                              swap(a[i,1],a[j,1]);
    28                              swap(a[i,2],a[j,2]);
    29                              inc(i);dec(j);
    30                         end;
    31                until i>j;
    32                if i<r then sort(i,r);
    33                if l<j then sort(l,j);
    34           end;
    35 begin
    36      readln(n);
    37      for i:=1 to n do readln(a[i,1],a[i,2]);
    38      for i:=1 to n do a[i,2]:=a[i,1]+a[i,2]-1;
    39      sort(1,n);l:=0;
    40      for i:=1 to n do if a[i,1]<>a[l,1] then
    41          begin
    42               inc(l);
    43               a[l,1]:=a[i,1];
    44               a[l,2]:=a[i,2];
    45          end;
    46      n:=l;l:=0;k:=0;
    47      for i:=1 to n do
    48          if a[i,1]>l then
    49             begin
    50                  inc(k);
    51                  l:=a[i,2];
    52             end;
    53      writeln(k);
    54      readln;
    55 end.
  • 相关阅读:
    System.arraycopy
    关于验证控件和javaSript验证的共存问题
    正则表达式经典
    css的一些基础的东西
    运用JAVASCRIPT,写一个类,类名:student,他的属性:name,age,tall,他的方法:getName,getAge,getTall
    转: ASP.NET 应用程序生命周期概述
    转:关于 Global.asax 文件
    今天又要过去了,学习点东西!
    javaScript对象和属性
    转载:.NET 2005 实现在线人数统计
  • 原文地址:https://www.cnblogs.com/HansBug/p/4478053.html
Copyright © 2011-2022 走看看