• 51nod 1099 任务执行顺序 (贪心算法)


    题目:传送门

    题意:中文题。

    题解:r[i]-o[i]值大的先进行。反证法:如果大的后进行,会导致空间增大,所以一定大的是先进行。

    #include <iostream>
    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    typedef long long ll;
    struct sa
    {
        ll r,o,c;
    } data[100005];
    bool cmp(sa x,sa y) //注意这个排序方式 差值大的先进行
    {
        return x.c>y.c;
    }
    int main()
    {
        ll n;
        while(cin>>n)
        {
            for(int i=0; i<n; i++)
            {
                cin>>data[i].r>>data[i].o;//注意(O[i]<R[i])  这个很重要
                data[i].c=data[i].r-data[i].o;
            }
            sort(data,data+n,cmp);
            ll ans=0,tmp=0;
            for(int i=0; i<n; i++)
            {
                ans=max(ans,tmp+data[i].r);
                tmp+=data[i].o;
            }
            cout<<ans<<endl;
        }
        return 0;
    }
  • 相关阅读:
    configparser模块
    xml文件解析
    shutil模块 + shelve模块 二合一版
    hashlib模块
    subprocess模块和sys模块
    re模块
    os模块
    random模块
    time模块、datetime模块讲解
    洛谷P3414 SAC#1
  • 原文地址:https://www.cnblogs.com/Ritchie/p/5764494.html
Copyright © 2020-2023  润新知