caioj:1682: 【贪心】买一送一
题目描述
【题意】
CH最近在网上发现干草买一送一的一笔交易,他每买一捆尺寸为A的干草,就可以免费获赠一捆尺寸为 B (1 ≤ B < A)的干草,注意B < A。
然而,这个买卖是有限制的:需要花钱的干草都是高质量的,而免费赠送的都是次品。然而节俭的CH并不在意质量:为了省钱他会买任意质量的干草。
给出N捆高质量的干草,以及M捆次品干草,找出CH最多可以买到多少捆干草。他可以单独买高质量的干草而没有获赠免费的次品干草;但是他不能单独买次品干草。
【输入描述】
第1行: 两个用空格隔开的整数:N和M。
第2行到第N+1行:每行一个整数,表示一捆高质量干草的尺寸。
第N+2行到第N+M+1行:每行一个整数,表示一捆次品干草的尺寸。
【输出描述】
唯一一行:一个整数,表示CH可以买到干草的最大捆数。
【样例输入】
3 4
6
1
3
1
5
3
4
【样例输出】
5
【提示】
样例说明:
共有3捆高质量的干草,尺寸分别是6,1,和3; 共有4捆次品干草,尺寸分别是1,5,3,和4。
显然,FJ可以买到所有高质量的干草。当他买尺寸为6的高质量干草时,他可以获赠尺寸为3的次品。当他买尺寸为3的高质量干草时,他可以获赠尺寸为1的次品。然而,当他买质量为1的高质量干草时,无论如何,他都不可能再获赠次品干草。所以答案就是3+2=5。
1 ≤ A ≤ 1,000,000
1 ≤ N ≤ 10,000
1 ≤ M ≤ 10,000
题解:
这道题十分水,首先高级稻草我们可以全部买齐,每个低级稻草都要配对一个离它最近且比他大的稻草才不会浪费,最后加上能派对上高级稻草的低级稻草的个数
代码(建议自己打):
#include<cstdio>
#include<cstring>
#include<algorithm>
using
namespace
std;
int
a[21000],b[21000],n,m;
int
main()
{
scanf
(
"%d%d"
,&n,&m);
for
(
int
i=1;i<=n;i++)
scanf
(
"%d"
,&a[i]);
for
(
int
i=1;i<=m;i++)
scanf
(
"%d"
,&b[i]);
sort(a+1,a+n+1);
sort(b+1,b+m+1);
int
ni=n;//ni表示没配对低级稻草的个数
for
(
int
i=m;i>=1;i--)
{
if
(ni==0)
break
;
if
(b[i]<a[ni])ni--;//如果这颗高级稻草配对了一枚低级稻草,那么把他踢出为匹配队列
}
printf
(
"%d\n"
,n+n-ni);
return
0;
}
注:上面的图片侵权抱歉!
caioj:1682: 【贪心】买一送一的更多相关文章
- CSU-2172 买一送一
CSU-2172 买一送一 Description ICPCCamp 有 n 个商店,用 1, 2, -, n 编号.对于任意 i > 1,有从商店 \(p_i\) 到 i 的单向道路. 同时, ...
- 牛客假日团队赛2 A.买一送一
链接: https://ac.nowcoder.com/acm/contest/924/A 题意: Farmer John在网上买干草.他发现了一笔特殊的买卖.他每买一捆大小为A(1 <= A ...
- 2019牛客国庆集训派对day3 买一送一
题目链接: 题意:有n个点,n-1条单向边,每个点都销售一类商品 问从点1开始走,买第一样商品类型为x,买第二样商品类型为y,问不同有序对<x,y>的数量 解法: col[i]表示这个点的 ...
- [牛客] [#1108 J] [树形结构] 买一送一
2019牛客国庆集训派对day3 链接:https://ac.nowcoder.com/acm/contest/1108/J来源:牛客网 题意 ICPCCamp 有 n 个商店,用 $1,2,..., ...
- CF335F Buy One, Get One Free 贪心
题意: \(n\)个物品,每个物品有一个价格,买一个高价格的物品,可以选择免费得到一个价格严格低于这个物品的物品.求得到\(n\)个物品的最小代价. 题解: 神仙贪心-- 题目要求求出最小代价,相当于 ...
- Leetcode 贪心 Best Time to Buy and Sell Stock
本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie Best Time to Buy and Sell Stock Total Accepted ...
- 应用程序框架实战十八:DDD分层架构之聚合
前面已经介绍了DDD分层架构的实体和值对象,本文将介绍聚合以及与其高度相关的并发主题. 我在之前已经说过,初学者第一步需要将业务逻辑尽量放到实体或值对象中,给实体“充血”,这样可以让业务逻辑高度内聚, ...
- 小菜学习设计模式(一)—模板方法(Template)模式
前言 设计模式目录: 小菜学习设计模式(一)—模板方法(Template)模式 小菜学习设计模式(二)—单例(Singleton)模式 小菜学习设计模式(三)—工厂方法(Factory Method) ...
- 比较牛X的互联网公司都有哪些作死的行为
以下为近乎家的小近吐血整理: 1流氓行为 臭表碾说的就是你们! 百度 还有这种伪造网页弹窗: 360 不经同意,也不弹窗提醒,直接给我们安装推广软件.比较典型的是 腾讯 腾讯一直走在行业最前端,买 ...
随机推荐
- Spring-cloud之Ribbon负载均衡的使用及负载均衡策略配置(与Eurka配合使用)
什么是Ribbon,ribbon有什么用,个人先总结一下(不正确请提出讨论):Ribbon是基于客户端的负载均衡器,为我们提供了多样的负载均衡的方案,比如轮询,最小的并发请求的server,随机ser ...
- HDU5972Regular Number(ShiftAnd算法 bitset)
题意 题目链接 第一行的\(n\)表示模式串长度为\(n\) 接下来\(n\)行,每行开头有一个整数\(num\)表示匹配串中该位置的字符可以在\(num\)个桅子花出现,接下来输入这\(num\)个 ...
- Android 给EditText添加下划线
在安卓高版本,默认是有下划线的,其默认下划线的颜色是由其主题颜色来控制的! 控制如下: <style name="AppTheme" parent="Theme.A ...
- 《ArcGIS Runtime SDK for Android开发笔记》——问题集:使用TextSymbol做标注显示乱码
1.前言 在14年的时候写过一篇博客关于ArcGIS for Android 10.1.1API 中文标注导致程序异常崩溃问题,但是当时并没有很好的解决这样一个问题,也并没有深入研究分析这样的一个异常 ...
- python3绘图示例4(基于matplotlib:箱线图、散点图等)
#!/usr/bin/env python# -*- coding:utf-8 -*- from matplotlib.pyplot import * x=[1,2,3,4]y=[5,4,3,2] # ...
- 解决在php5中simple XML解析错误的问题
2004年7月,php5正式版本的发布,标志着一个全新的PHP时代的到来.PHP5的最大特点是引入了面向对象的全部机制,并且保留了向下的兼容性.程序员不必再编写缺乏功能性的类,并且能够以多种方法实现类 ...
- 笨办法学Python(三十)
习题 30: Else 和 If 前一习题中你写了一些 “if 语句(if-statements)”,并且试图猜出它们是什么,以及实现的是什么功能.在你继续学习之前,我给你解释一下上一节的加分习题的答 ...
- java多线程安全
class Ticket implements Runnable { public int sum=10; public void run() { while(true) { if(sum>0) ...
- C# 驱动的mongodb的分页查询简单示例
/// <summary> /// mongodb分页查询 /// </summary> /// <typeparam name="T">< ...
- UESTC 761 LoveZx与期末考试
被卡的一道题,其他情况都想出来了,主要是没想好A[i] == B[j]时候的处理,取最后面最大的可能不是最优解,相等的时候我暴力比较后缀的(为此还要维护一个链),这个操作是O(len) 所以T了.(也 ...