博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj3614 Sunscreen
阅读量:5106 次
发布时间:2019-06-13

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

思路:

贪心,对于某个防晒霜,把它分给它能满足的所有的牛中要求最严格的一个(若把所有能满足的区间按照左端点从小到大排序的话,则分给右端点最小(区间最短)的一个)。

实现:

1 #include 
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 8 struct cow 9 {10 int minn, maxn;11 };12 13 struct lotion14 {15 int s, c;16 };17 18 cow a[2505];19 lotion t[2505];20 int C, L;21 22 bool cmp(const cow & c1, const cow & c2)23 {24 if (c1.minn != c2.minn)25 {26 return c1.minn < c2.minn;27 }28 return c1.maxn < c2.maxn;29 }30 31 bool cmp1(const lotion & l1, const lotion & l2)32 {33 return l1.s < l2.s;34 }35 36 int main()37 {38 cin >> C >> L;39 priority_queue
, greater
> q;40 for (int i = 0; i < C; i++)41 {42 cin >> a[i].minn >> a[i].maxn;43 }44 for (int i = 0; i < L; i++)45 {46 cin >> t[i].s >> t[i].c;47 }48 sort(a, a + C, cmp);49 sort(t, t + L, cmp1);50 int cnt = 0, cur = 0;51 for (int i = 0; i < L; i++)52 {53 while (cur < C && a[cur].minn <= t[i].s)54 {55 q.push(a[cur].maxn);56 cur++;57 }58 while (!q.empty() && t[i].c > 0)59 {60 int tmp = q.top();61 q.pop();62 if (t[i].s <= tmp)63 {64 cnt++;65 t[i].c--;66 }67 }68 }69 cout << cnt << endl;70 return 0;71 }

 

转载于:https://www.cnblogs.com/wangyiming/p/6542289.html

你可能感兴趣的文章
Java 多态 虚方法
查看>>
Unity之fragment shader中如何获得视口空间中的坐标
查看>>
万能的SQLHelper帮助类
查看>>
tmux的简单快捷键
查看>>
[Swift]LeetCode922.按奇偶排序数组 II | Sort Array By Parity II
查看>>
Html5 离线页面缓存
查看>>
《绿色·精简·性感·迷你版》易语言,小到不可想象
查看>>
Android打包key密码丢失找回
查看>>
VC6.0调试技巧(一)(转)
查看>>
类库与框架,强类型与弱类型的闲聊
查看>>
webView添加头视图
查看>>
php match_model的简单使用
查看>>
在NT中直接访问物理内存
查看>>
Intel HEX 文件格式
查看>>
SIP服务器性能测试工具SIPp使用指导(转)
查看>>
php_扑克类
查看>>
回调没用,加上iframe提交表单
查看>>
(安卓)一般安卓开始界面 Loding 跳转 实例 ---亲测!
查看>>
Mysql 索引优化 - 1
查看>>
LeetCode(3) || Median of Two Sorted Arrays
查看>>