• C The Party and Sweets(思维 + 贪心)


    题目链接

    题意:n个男孩,m个女孩,第i个男孩送出的最小糖果为b[i],送给m个女孩,第i个女孩收到的最小的糖果为g[i],且b[i],g[i],全部要取到,问送出的最少糖果

    题解:明显可以贪心做。
    先对b[i] 和g[i]进行排序,首先n个男孩肯定要送出b[i],可以求出此时最小的一个值∑b[i] * m 。同时所有的g[i]要取到,那么便遍历一遍g[i]-b[n-1],解释:首先要取最小,先满足min(b[i]) > max [g[i]) ,所以对最大的b[i]必然可以取n-1个g[i],如果g[0]!=b[n-1],那么最大的b[i]就要取自身的值,此时只要b[n-2]取即可。

    AC代码

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    typedef pair<ll, ll> pii;
    ll n, m, k, ans, mod=1e9+7;
    ll g[101010], b[101010];
    int main()
    {
        ios_base::sync_with_stdio(false);
        cin.tie(0);
        ll i, j, temp=0;
        cin>>n>>m;
        for(i=0;i<n;i++)
            cin>>b[i];
        for(i=0;i<m;i++)
            cin>>g[i];
        sort(b, b+n);
        sort(g, g+m);
        if(b[n-1]>g[0])
        {
            cout<<"-1";
            return 0;
        }
        for(i=0;i<n;i++)
            ans+=b[i];
        ans*=m;
        for(i=1;i<m;i++) ans+=g[i]-b[n-1];
        if(g[0]!=b[n-1]) ans+=g[0]-b[n-2];
        cout<<ans;
    }
  • 相关阅读:
    电子商务测试点总结
    pc 端 测试点总结
    web测试点总结
    Monkey脚本API
    Git 命令
    配置samba的流程
    scrapy使用指南
    链接
    顺序表总结
    python数据类型——字符串类型
  • 原文地址:https://www.cnblogs.com/Agnel-Cynthia/p/10862995.html
Copyright © 2020-2023  润新知