博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C The Party and Sweets(思维 + 贪心)
阅读量:5285 次
发布时间:2019-06-14

本文共 804 字,大约阅读时间需要 2 分钟。

 

题意: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
using namespace std;typedef long long ll;typedef pair
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
>b[i]; for(i=0;i
>g[i]; sort(b, b+n); sort(g, g+m); if(b[n-1]>g[0]) { cout<<"-1"; return 0; } for(i=0;i

 

转载于:https://www.cnblogs.com/Agnel-Cynthia/p/10862995.html

你可能感兴趣的文章
算法训练 字串统计
查看>>
Codeforces-733C-Epidemic in Monstropolis&&733D-Kostya the Sculptor(乱搞)
查看>>
HDU-4614-Vases and Flowers(线段树)
查看>>
eclipse——代码折叠快捷
查看>>
移动互联网广告 - 第六更 - 移动广告的作弊方法及反作弊 - 2016/12/07
查看>>
虚拟DOM,真实的JS对象,操作内存中的js对象要比操作DOM节省性能?
查看>>
拓扑排序-hihocoder1175
查看>>
encodeURIComponent与URLDecoder.decode用法
查看>>
LinkedList 和 ArraryList的区别. <java>
查看>>
大数据学习大纲,大数据应该怎么学
查看>>
HTTP协议学习笔记
查看>>
sublime 打开命令窗口监控
查看>>
Windbg 驱动加载时进入调试
查看>>
ubuntu16.04降级内核版本至3.13.0-85
查看>>
Junit中的异常测试
查看>>
九度OJ 1038:Sum of Factorials(阶乘的和) (DP、递归)
查看>>
DRF之分页器组件
查看>>
JS中this的用法
查看>>
oracle 修改进程
查看>>
vue.js数据绑定
查看>>