zoukankan      html  css  js  c++  java
  • BZOJ 1620: [Usaco2008 Nov]Time Management 时间管理( 二分答案 )

    二分一下答案就好了...

    ----------------------------------------------------------------------------------------

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<cctype>
    #include<iostream>
     
    #define rep( i , n ) for( int i = 0 ;  i < n ; ++i )
    #define clr( x , c ) memset( x , c , sizeof( x ) )
     
    using namespace std;
     
    const int maxn = 1000 + 5;
     
    int n;
     
    struct data {
    int t , s;
    void Read() {
    scanf( "%d%d" , &t , &s );
    }
    bool operator < ( const data &rhs ) const {
    return s < rhs.s;
    }
    };
     
    data A[ maxn ];
     
    bool jud( int cur ) {
    rep( i , n ) {
    data &x = A[ i ];
    if( ( cur += x.t ) > x.s ) return false;
    }
    return true;
    }
     
    int main() {
    // freopen( "test.in" , "r" , stdin );
    cin >> n;
    int L = 0 , R = 0x7fffffff;
    rep( i , n ) {
       A[ i ].Read();
       
       R = min( A[ i ].s , R );
       
    }
    sort( A , A + n );
    int ans = -1;
    while( L <= R ) {
    int mid = ( L + R ) >> 1;
    if( jud( mid ) ) 
       ans = mid , L = mid + 1;
       
    else 
     
       R = mid - 1;
    }
    cout << ans << " ";
    return 0;
    }

      

    ----------------------------------------------------------------------------------------

    1620: [Usaco2008 Nov]Time Management 时间管理

    Time Limit: 5 Sec  Memory Limit: 64 MB
    Submit: 539  Solved: 325
    [Submit][Status][Discuss]

    Description

    Ever the maturing businessman, Farmer John realizes that he must manage his time effectively. He has N jobs conveniently numbered 1..N (1 <= N <= 1,000) to accomplish (like milking the cows, cleaning the barn, mending the fences, and so on). To manage his time effectively, he has created a list of the jobs that must be finished. Job i requires a certain amount of time T_i (1 <= T_i <= 1,000) to complete and furthermore must be finished by time S_i (1 <= S_i <= 1,000,000). Farmer John starts his day at time t=0 and can only work on one job at a time until it is finished. Even a maturing businessman likes to sleep late; help Farmer John determine the latest he can start working and still finish all the jobs on time.

    N个工作,每个工作其所需时间,及完成的Deadline,问要完成所有工作,最迟要什么时候开始.

    Input

    * Line 1: A single integer: N

    * Lines 2..N+1: Line i+1 contains two space-separated integers: T_i and S_i

    Output

    * Line 1: The latest time Farmer John can start working or -1 if Farmer John cannot finish all the jobs on time.

    Sample Input

    4
    3 5
    8 14
    5 20
    1 16

    INPUT DETAILS:

    Farmer John has 4 jobs to do, which take 3, 8, 5, and 1 units of
    time, respectively, and must be completed by time 5, 14, 20, and
    16, respectively.

    Sample Output

    2

    OUTPUT DETAILS:

    Farmer John must start the first job at time 2. Then he can do
    the second, fourth, and third jobs in that order to finish on time.

    HINT

    Source

  • 相关阅读:
    app后端session共享问题
    nignx
    dubbo
    lucene&solr-day1
    SSM框架整合,以CRM为例子
    SpringMVC入门第二天
    HBase集群搭建
    SecureCRT的Home+End+Del键映射
    记一次让人的喷血的排错经历
    基于docker搭建mysql集群
  • 原文地址:https://www.cnblogs.com/JSZX11556/p/4556314.html
Copyright © 2011-2022 走看看