Problem Description

又到了收获的季节,树上结了许多韬韬,错了,是许多苹果,有很多个小韬韬都来摘苹果。每个韬韬都想要最大的苹果,所以发生了争执,为了解决他们的矛盾,出题人定了一项特殊的规则,按体重的大小来定顺序,每一轮都是先由胖的先摘(照顾胖子),每个韬韬都是很聪明的,不会错过眼前最大的苹果。现在问题来了,一共有n个苹果,m个韬韬,要你按原顺序输出每个韬韬可以抢到的苹果的总大小。

Input

第一行两个数n,m。

接下来一行n个数,分别为每个苹果的大小。

接下来一行m个数,分别为每个韬韬的体重。

Output

一行m个数,每个韬韬抢到的苹果的大小。

Sample Input

5 3

1 2 3 4 5

1 2 3

Sample Output

3 5 7

[数据规模]

n,m<=100000

思路

这一题,乍一看题目,"啊~好水啊~".可是嘞......

虽然看起来很水,但不过我写的代码比"韬韬摘苹果"的多了去了.先说咋做吧.

1.输入

输入就不用说了,但是这里面需要把"肥韬韬"走一个结构体,输入的代码如下

1 scanf("%d%d", &n, &m);
2 for(int i = 1; i <= n; i++)
3     scanf("%d", &apple[i]);//苹果
4 ​
5 for(int i = 1; i <= m; i++)
6 {
7     scanf("%d", &t[i].w);//输入韬韬的重量
8     t[i].l = i;//记录编号
9 }

2.排序

题目表述的非常的清楚,我们要将韬韬按肥瘦排序,因为100000不算大,sort过一遍即可.

1 int cmp(node a, node b)//按重量关键字排序
2 {
3     return a.w > b.w;//大到小
4 }
5 {
6 ...//其他代码
7 }
8 sort(t + 1, t + m + 1, cmp);//这是排序的函数
9 sort(apple + 1, apple + 1 + n);//苹果也顺便π下

3.存答案

这一步也十分的牛13,额.

首先将苹果从n到1过一遍,然后韬韬按照之前预处理好的宅苹果.

 1 int k = n;//k枚举apple
 2 int i = 1;//i枚举韬韬
 3 while(k != 0)
 4 {
 5     t[i].c += apple[k];//记录累加
 6     k--;//苹果被宅
 7     i++;//抡到下一个韬韬
 8     if(i > m)//抡玩一遍
 9         i = 1;//再轮一遍
10 }

4.输出

输出就美丽啦,但是他是按编号输出的,现在的复杂度有点堪忧,算啦,管他,再拍一遍.

 1 int cmp2(node a, node b)
 2 {
 3     return a.l < b.l;//按编号排
 4 }
 5 {
 6     ...//其他
 7 }
 8 sort(t + 1, t + m + 1, cmp2);
 9 for(i = 1; i <= m; i++)
10 {
11     printf("%d ", t[i].c);//拍完后输出
12 }

噜噜噜,这题就解决了,贴整体代码:

 1 #include <cstdio>
 2 #include <algorithm>
 3 using namespace std;
 4 int n, m;
 5 int apple[100001];
 6 struct node {
 7     int l;
 8     int w;
 9     int c;
10 }t[100001];
11 int cmp(node a, node b)
12 {
13     return a.w > b.w;
14 }
15 int cmp2(node a, node b)
16 {
17     return a.l < b.l;
18 }
19 int main()
20 {
21     scanf("%d%d", &n, &m);
22     for(int i = 1; i <= n; i++)
23         scanf("%d", &apple[i]);
24
25     for(int i = 1; i <= m; i++)
26     {
27         scanf("%d", &t[i].w);
28         t[i].l = i;
29     }
30     sort(t + 1, t + m + 1, cmp);
31     sort(apple + 1, apple + 1 + n);
32     int k = n;
33     int i = 1;
34     while(k != 0)
35     {
36         t[i].c += apple[k];
37         k--;
38         i++;
39         if(i > m)
40             i = 1;
41     }
42     sort(t + 1, t + m + 1, cmp2);
43     for(i = 1; i <= m; i++)
44     {
45         printf("%d ", t[i].c);
46     }
47 }

奶思~马飞~~...

转载于:https://www.cnblogs.com/wnfs/p/11516100.html

韬韬抢苹果 #普及组#相关推荐

  1. 备战Noip2018模拟赛3(B组)T1 Apple 韬韬抢苹果

    10月3日备战Noip2018模拟赛3(B组) T1 Apple韬韬抢苹果 题目描述 又到了收获的季节,树上结了许多韬韬,错了,是许多苹果,有很多个小韬韬都来摘苹果.每个韬韬都想要最大的苹果,所以发生 ...

  2. NOIP2005复赛 普及组 第1题 陶陶摘苹果

    http://ybt.ssoier.cn:8088/problem_show.php?pid=1930 http://noi.openjudge.cn/ch0106/02/ /* NOIP2005复赛 ...

  3. 信息学奥赛一本通 1103:陶陶摘苹果 |1930:【05NOIP普及组】陶陶摘苹果 | OpenJudge NOI 1.6 02 | 洛谷 P1046 [NOIP2005 普及组] 陶陶摘苹果

    [题目链接] ybt 1103:陶陶摘苹果 ybt 1930:[05NOIP普及组]陶陶摘苹果 OpenJudge NOI 1.6 02:陶陶摘苹果 洛谷 P1046 [NOIP2005 普及组] 陶 ...

  4. 洛谷——P1046 [NOIP2005 普及组] 陶陶摘苹果

    P1046 [NOIP2005 普及组] 陶陶摘苹果 题目描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 1010 个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个 3030 厘米高的板凳 ...

  5. 【洛谷 P1046】[NOIP2005 普及组] 陶陶摘苹果 题解(比较)

    [NOIP2005 普及组] 陶陶摘苹果 题目描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 10 10 个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个 30 30 30 厘米高的 ...

  6. 2016年中山市信息学竞赛暨全国信息学联赛成绩表(普及组)

    这一次比赛的成绩出来啦,考的还是不错的,至少近复赛了.加油! 2016年中山市信息学竞赛暨全国信息学联赛成绩表(普及组)   序号 姓名 性别 学校 年级 参赛语种 指导教师 成绩 32 徐熠伟 男 ...

  7. noip2016普及组初赛中山市成绩表及分数线

    广东中山初赛分数线63分~ 2016年中山市信息学竞赛暨全国信息学联赛成绩表(普及组)   排名 姓名 性别 学校 年级 参赛语种 指导教师 成绩 1 徐熠伟 男 中山市中山纪念中学 初一 pasca ...

  8. NOIP普及组第1题(1995-2018)

    NOIP1995普及组复赛第1题 https://blog.csdn.net/secret_zz/article/details/76862335 https://blog.csdn.net/WDAJ ...

  9. 历年CSP-J(NOIP普及组)分类汇总目录

    内容持续更新中... ... [2022CSPJ普及组]T1.乘方                    数学问题 [2022CSPJ普及组]T2.解密                    数学问题 ...

最新文章

  1. 最全面的Linux指令大全
  2. 使用JProfiler查看GC Roots
  3. linux常用调试,linux下gdb常用的调试命令
  4. 安卓学习笔记39:浏览网页、网页与安卓通信
  5. completable java_java8 CompletableFuture异步编程
  6. Android中Java根据文件头获取文件类型
  7. 一个很好的String组合连接的方法(StringBuffer)
  8. 如何使用GetParent来得到父对话框的指针
  9. 计算机软件质测试标准,软件产品质量要求和测试细则 ——GB/T 25000.51—2016标准实施指南...
  10. Android 获取应用信息—PackageManager
  11. 阿里巴巴java_阿里巴巴提供自己的Java发行版
  12. Linux 使用shell命令复制文件
  13. kubernetes安装脚本-非高可用版。一键安装含Master和Node。
  14. WordBias | 可视化文本中的偏见(刻板印象)
  15. 抖音、快手、西瓜制作影视解说短视频的实用工具
  16. Pycharm中无法通过点击查看csv文件解决方法
  17. 移动数组中的所有零到数组的末尾
  18. 【05】概率图表示之马尔可夫随机场
  19. python使用docx模块读写docx文件的方法与docx模块常用方法
  20. H3C SSL weiPN基本配置(内网OSPF协议)

热门文章

  1. 一个程序员的自白:我为什么写博客
  2. 搜索引擎:检索技巧(Google谷歌,百度)+ 常用的资源网站及技巧
  3. 川崎机器人总线通信_川崎机器人:PLC有那些功能?能实现机器人哪些通讯?
  4. 5. IO流之缓冲流
  5. 如何从公网访问本地的Zeus?
  6. 如何快速掌握Python数据采集与网络爬虫技术
  7. 管你 JDK 还是 Linux,我 Netty 稳坐钓鱼台
  8. 汇编jmp指令的一些用法(王爽)
  9. mendeley导入pdf后无法打开:unable to open this file解决办法
  10. 【C语言】输入矩形的长和宽,计算该矩形的面积