o.boj 1022 SuperRock钟爱的香蕉
来源:互联网 发布:手机管家数据恢复 编辑:程序博客网 时间:2024/06/09 19:50
注:最近这一系列ACM的内容,都是2年多之前的代码,自己回顾一下。
Description
Bupt的新水果店开张,有买一赠一的活动,即每买一只大小为A(1 <= A <= 1,000,000)的香蕉,他就能免费获得一只大小为B(1 <= B < A)的香蕉!
吝啬鬼SuperRock以及整个912实验室成员都喜欢香蕉,然而,这个活动是有规定的:大的一只香蕉必须是甜的,小的一只是不甜的。SuperRock并不在意:912里的都是狼,不管什么味道,香蕉总是一抢而光,他只想买最多的香蕉。
给出一组N(1 <= N <= 10,000)只甜香蕉的大小,M(1 <= M <= 10,000)只不甜的香蕉的大小,找出SuperRock最多能买多少只香蕉。注意:他能买甜的香蕉而不拿免费的不甜香蕉(店老板很高兴),但他不能直接买不甜的香蕉(就是说,他只能通过赠送来获得)。
神哪,救一救SuperRock,找一个办法尽可能的喂饱那些狼吧。
Input
第 1 行: 两个用空格分开的整数,N和M。
第 2 至 N+1 行: 第i+1行包含一个整数,是第i只甜香蕉的大小。
第 N+2 至 N+M+1 行: 第i+N+1行包含一个整数,是第i只不甜的香蕉的大小。
Output
第 1 行: SuperRock能买的最大的香蕉的只数。
Sample Input
3 4
6
1
3
1
5
3
4
Sample Output
5
Hint
显然,SuperRock能买所有的甜的香蕉。当他买了大小为6的甜香蕉,他可以免费拿任何一只不甜的香蕉(例如大小为3的)。当他买了大小为3的高质量香蕉,他可以拿大小为1的免费不甜的香蕉。然而当他买了大小为1的甜干草,就不能拿不了免费香蕉了(因为大小必须严格小于)。这样,尽管SuperRock很聪明,但他最多也只能拿5只香蕉了。
Source
moyuji@BUPT
Bupt的新水果店开张,有买一赠一的活动,即每买一只大小为A(1 <= A <= 1,000,000)的香蕉,他就能免费获得一只大小为B(1 <= B < A)的香蕉!
吝啬鬼SuperRock以及整个912实验室成员都喜欢香蕉,然而,这个活动是有规定的:大的一只香蕉必须是甜的,小的一只是不甜的。SuperRock并不在意:912里的都是狼,不管什么味道,香蕉总是一抢而光,他只想买最多的香蕉。
给出一组N(1 <= N <= 10,000)只甜香蕉的大小,M(1 <= M <= 10,000)只不甜的香蕉的大小,找出SuperRock最多能买多少只香蕉。注意:他能买甜的香蕉而不拿免费的不甜香蕉(店老板很高兴),但他不能直接买不甜的香蕉(就是说,他只能通过赠送来获得)。
神哪,救一救SuperRock,找一个办法尽可能的喂饱那些狼吧。
Input
第 1 行: 两个用空格分开的整数,N和M。
第 2 至 N+1 行: 第i+1行包含一个整数,是第i只甜香蕉的大小。
第 N+2 至 N+M+1 行: 第i+N+1行包含一个整数,是第i只不甜的香蕉的大小。
Output
第 1 行: SuperRock能买的最大的香蕉的只数。
Sample Input
3 4
6
1
3
1
5
3
4
Sample Output
5
Hint
显然,SuperRock能买所有的甜的香蕉。当他买了大小为6的甜香蕉,他可以免费拿任何一只不甜的香蕉(例如大小为3的)。当他买了大小为3的高质量香蕉,他可以拿大小为1的免费不甜的香蕉。然而当他买了大小为1的甜干草,就不能拿不了免费香蕉了(因为大小必须严格小于)。这样,尽管SuperRock很聪明,但他最多也只能拿5只香蕉了。
Source
moyuji@BUPT
甜的都要买,就看能送多少只。先按大小分别排序,从甜香蕉从大到小的遍历,同样地换一个能换的最大的不甜的香蕉。
#include <iostream>using namespace std;bool cmp(int a, int b) { return (a > b); }int main (){ int N, M, Sweet[10000], NSweet[10000], count, pos, flag; cin >> N >> M; for (int i = 0; i < N; i++) { cin >> Sweet[i]; } for (int i = 0; i < M; i++) { cin >> NSweet[i]; } sort(Sweet, Sweet + N, cmp); sort(NSweet, NSweet + M, cmp); pos = 0; count = N; flag = 1; for (int i = 0; i < N && flag; i++) { int j; for (j = pos; NSweet[j] >= Sweet[i] && j < M; j++) {;} if (j == M) flag = 0; else { pos = j + 1; count += 1; } } cout << count << endl; // system("pause"); return 0;}
- o.boj 1022 SuperRock钟爱的香蕉
- o.boj 1031 考古学家SuperRock的新发现
- o.boj 1022 Steps
- o.boj 1229 危险的民主
- o.boj 1451 贪吃的Tomato
- o.boj 1477 cloudiris的巧克力账本
- o.boj 1495 麻烦的名词复数
- o.boj 1503 Sapphire的反转文
- o.boj 1047 MODULO
- o.boj 1051 SIBICE
- o.boj 1053 R2
- o.boj 1059 PATULJCI
- o.boj 1066 SPOJ
- o.boj 1078 牛税
- o.boj 1099 Plant
- o.boj 1120 Rounders
- o.boj 1301 Game
- o.boj 1436 门牌号
- TabActivity中onKeyDown无法响应的解决方法
- OSE
- include.vbs
- 哈希文件
- C语言链表实现的简易学生成绩管理系统
- o.boj 1022 SuperRock钟爱的香蕉
- ubuntu修改IP MAC DNS
- jQuery的JSON解析
- ubuntu文件系统中各文件夹的作用
- Struts2 默认UI组件 s:form 生成代码不适用于使用二级域名情况的应用
- Beej’s Guide Network to Programming 系列连载02
- 图片AIT标签
- 磁盘的末日
- ubuntu1004上用linuxQQ