• 业务办理


    这里写图片描述
    这里写图片描述

    仔细分析,发现要使最大不满意度最小,排队顺序应该是按照最长等待时间来排。
    如果不是这样,交换任意两个人的位置,那么这两个人等待时间的最大值一定比原来大。
    所以这样排的正确性显然。

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<algorithm>
    #define LL long long
    #define M 100009
    using namespace std;
    int n;
    LL ans,tot;
    struct H{int t,d;}per[M];
    bool cmp(H x,H y)
    {
        if(x.d==y.d) return x.t<y.t;
        return x.d<y.d;
    }
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++) scanf("%d",&per[i].t);
        for(int i=1;i<=n;i++) scanf("%d",&per[i].d);
        sort(per+1,per+n+1,cmp);
        for(int i=1;i<=n;i++)
        {
            tot+=per[i].t;
            ans=max(ans,tot-per[i].d);
        }
        printf("%lld",ans);
        return 0;
    }

    下面是暴力对拍程序
    求一下全排列。

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<algorithm>
    #define LL long long
    #define M 100009
    using namespace std;
    int n,num[M],d[M],t[M];
    LL ans,tot,minn=1e18;
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++) scanf("%d",&t[i]);
        for(int i=1;i<=n;i++) scanf("%d",&d[i]);
        for(int i=1;i<=n;i++) num[i]=i;
        while(1)
        {
            tot=0;ans=0;
            for(int i=1;i<=n;i++)
            {
                tot+=t[num[i]];
                ans=max(ans,tot-d[num[i]]);
            }
            minn=min(minn,ans);
            if(!next_permutation(num+1,num+n+1)) break;
        }
        printf("%lld",minn);
    }
  • 相关阅读:
    yaml 文件解析
    python 实现自动部署测试环境
    运行ride.py报错,闪退
    selenium 配置ie11 浏览器
    自动化测试(1)selenium+python+chrome 连接测试
    scrapy爬虫框架
    drf内置排序源码
    celery基本使用
    C# 如何复制(拷贝)Label控件上的文本【新方法】
    C# 使用PictureBox实现图片按钮控件
  • 原文地址:https://www.cnblogs.com/dfsac/p/7587810.html
Copyright © 2020-2023  润新知