zoukankan      html  css  js  c++  java
  • 51nod 1099 贪心/思维

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1099

    1099 任务执行顺序

    基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题
    收藏
    关注
    有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

    一开始贪心的先执行R长的任务,计算总耗时但是WA了。
    我们假设答案就是maxn,每次执行一个任务时总有充足的空间,那么执行第i个任务时需要至少ri的空间,结束后剩余ri-oi的空间用于剩下的任务,到最后一个任务时除去oi还剩下ri-oi的空间
    所以答案就是 SUM{oi}+MIN{ri-oi};
     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define LL  long long
     4 int main()
     5 {
     6     int N,i,j,r,o;
     7     cin>>N;
     8     int s=0,minn=999999999;
     9     for(i=1;i<=N;++i) 
    10     {
    11         scanf("%d%d",&r,&o);
    12         s+=o;
    13         minn=min(minn,r-o);
    14     }
    15     cout<<s+minn<<endl;
    16     return 0;
    17 }
  • 相关阅读:
    哈希表实例
    二叉排序树算法实例
    外部中断实验
    定时器计数实验
    顺序表和有序表查找实例
    查找的普通应用实例
    矩阵键盘实验
    LED数码管显示实验
    流水灯实验
    删除注释行和空行
  • 原文地址:https://www.cnblogs.com/zzqc/p/7458424.html
Copyright © 2011-2022 走看看