zoukankan      html  css  js  c++  java
  • 51Nod

    51Nod - 1099 任务执行顺序

    有N个任务需要执行,第i个任务计算时占R[i]个空间,而后会释放一部分,最后储存计算结果需要占据O[i]个空间(O[i] < R[i])。
     
    例如:执行需要5个空间,最后储存需要2个空间。给出N个任务执行和存储所需的空间,问执行所有任务最少需要多少空间。
    Input
    第1行:1个数N,表示任务的数量。(2 <= N <= 100000)
    第2 - N + 1行:每行2个数R[i]和O[i],分别为执行所需的空间和存储所需的空间。(1 <= O[i] < R[i] <= 10000)
    Output
    输出执行所有任务所需要的最少空间。
    Input示例
    20
    14 1
    2 1
    11 3
    20 4
    7 5
    6 5
    20 7
    19 8
    9 4
    20 10
    18 11
    12 6
    13 12
    14 9
    15 2
    16 15
    17 15
    19 13
    20 2
    20 1
    Output示例
    135

    题解: 

        想根据二分搜索来找答案, 但是Check函数没有写错。(Check,按照最大的r来模拟, 这种解法是有问题的。)

        采用discussion 中的解法: 所有的 O的sum,加上 argmin (r - o) 

    #include <iostream> 
    #include <cstdlib> 
    #include <cstdio> 
    using namespace std; 
    
    int main(){
    	int n, r, o, l, ans; 
    	while(scanf("%d", &n) != EOF){
    		if(n == 0){
    			printf("0
    "); 
    			continue; 
    		}
    		ans = 0; 
    		l = 0x3f3f3f; 
    		for(int i=0; i<n; ++i){
    			scanf("%d %d", &r, &o); 
    			ans += o; 
    			l = min(l, r - o); 
    		}
    		ans += l; 
    		printf("%d
    ", ans );
    	}
    	return 0; 
    }
    

      

  • 相关阅读:
    《Python 源码阅读》之 类型Type
    《Python 源码剖析》之对象
    KMP匹配算法
    Python的递归深度
    js验证手机号
    Jquery 实现 “下次自动登录” 记住用户名密码功能
    js注册读秒进度条
    div+css进度条
    SprignMVC+myBatis整合
    ssm控制输出sql(二)
  • 原文地址:https://www.cnblogs.com/zhang-yd/p/6910428.html
Copyright © 2011-2022 走看看