山治的婚约

Description

我们知道,山治原来是地下有名的杀人家族文斯莫克家族的三子,目前山治的弟弟已经出现,叫做四治,大哥二哥就叫汪(One)治跟突(Two)治好了(跟本剧情无关) 。山治知道自己跟夏洛特家族有婚约之时,决定参加大妈的茶会,跟父亲做个了断。然而夏洛特公主早已看穿了一切,她给山治出了个难题,如果山治能够解决难题,夏洛特公主就帮助山治解除婚约。公主安排了 N 只拿着蛋糕的猴子,排成一列,每只猴子都有自己的初始位置 Pi 和行动量 Di,山治从前往后夺取猴子的蛋糕,因为光谱踢技能的冷却时间太久,每干掉一直猴子,来不及对其后面的猴子下手,其后面的第一只猴子就会往后逃跑一段距离 Di,重新插入到队伍中。这时又可以对接下来的猴子动手,夺取蛋糕,公主答应只要山治知道自己夺得所有蛋糕需要移动多远,就算通过了考验。山治的幸福就交给大家了。
注:如果两只猴子在同一位置,可以看做两只猴子一前一后,初始位置小的在前假设山治的初始位置为 0

Input

第一行给出整数 N,猴子的数量
接下来 N 行,每行两个整数,Pi 和 Di
其中 0<N<=10000,并保证所有数据在 INT 范围内,保证每只猴子的初始位置都不同

Output

输出一个整数,表示山治夺得所有蛋糕需要移动多远

Sample Input

8 112 26 63 35 54 47 78 8

Sample Output

24

思路

题目给出的样例解释感觉反而会误导别人,所以就没有把它放出来。就是一排猴子,然后山治从0起点沿路下去打猴子,用优先队列模拟一下就好。

 AC代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
const int maxn = 10005;  struct Node{  int pi,di,id;  bool operator <(const Node &a)const  {  if (pi == a.pi) return id > a.id;  return pi > a.pi;  }
};  int main()
{  //freopen("input.txt","r",stdin);  int N,i;  priority_queue<Node>pque;  Node ptmp;  scanf("%d",&N);  for (i = 0;i < N;i++)  {  scanf("%d%d",&ptmp.pi,&ptmp.di);  ptmp.id = ptmp.pi;  pque.push(ptmp);  }  i = 1;  while (!pque.empty())  {  ptmp = pque.top();  pque.pop();  if (!i)  {  ptmp.pi += ptmp.di;  pque.push(ptmp);  }  i = !i;  }   printf("%d\n",ptmp.pi);  return 0;
}

  

转载于:https://www.cnblogs.com/ZhaoxiCheung/p/6102230.html

数据结构作业——Sanji(优先队列)相关推荐

  1. 数据结构作业之输出树的每一条从根节点到叶节点的路径

    数据结构作业,输出树的每一条从根节点到叶节点的路径 #include <stdio.h> #include <stdlib.h> typedef struct tree {ch ...

  2. 数据结构作业9(清览题库)

    数据结构作业9(清览题库) 主要涉及内容为:拓扑排序,关键路径,内排序等

  3. 高级数据结构(Ⅱ)优先队列(Priority Queue)

    高级数据结构(Ⅱ)优先队列(Priority Queue) 许多应用程序都需要处理有序的元素,但不一定要求它们全部有序,或是不一定要一次就将它们排序.很多情况下我们会收集一些元素,处理当前键值最大的元 ...

  4. 数据结构作业——ギリギリ eye(贪心+优先队列/贪心+并查集)

    ギリギリ eye Description A.D.1999,由坠落地球的"谜之战舰"带来的 Over Technology,揭示了人类历史和远古文明之间的丝丝联系, 促使人类终止彼 ...

  5. 数据结构作业——Fresh Meat(优先队列)

    Fresh Meat Description 我们故事的主角是屠夫扒鸡,起初屠夫扒鸡只是一个佣兵,他先去拜了太上老君为师,学了一技能肉钩,凭着一技肉钩驰骋决斗场,达到一段以后到阿尔伯特那里偷学了二技能 ...

  6. 【数据结构作业—01】用单循环链表解决约瑟夫问题

    实验作业一:线性表(链表) 1. 用单循环链表解决约瑟夫问题. 问题描述: 一个旅行社要从n个旅客中选出一名旅客,为他提供免费的环球旅行服务.旅行社安排这些旅客围成一个圆圈,从帽子中取出一张纸条,用上 ...

  7. 数据结构作业(校园导航系统)

    本人是一名暨南大学大二的学生,这是我的数据结构课程的一次编程作业,主要算法是弗洛伊德算法,希望各位大神多多指教. #include<stdio.h> #include<stdlib. ...

  8. Java数据结构:有序优先队列

    在使用排序算法,除了使用快速排序解决问题,有时还可以用到优先队列,在<算法>这本书里,弄明白了优先队列,以及代码在此记录 优先队列定义 优先队列可以解决操作系统中cpu处理优先级进程的问题 ...

  9. 数据结构-堆实现优先队列(java)

    队列的特点是先进先出.通常都把队列比喻成排队买东西,大家都很守秩序,先排队的人就先买东西.但是优先队列有所不同,它不遵循先进先出的规则,而是根据队列中元素的优先权,优先权最大的先被取出.这就很像堆的特 ...

最新文章

  1. opencv隔点采样(下采样)
  2. 科技公司最常用的50款开源工具,提升你的逼格~
  3. 错误: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils
  4. sklearn快速入门教程:(二)线性回归
  5. Mysql运行在内核空间_思考mysql内核之初级系列6—innodb文件管理 | 学步园
  6. 消失了一周的小夕在玩什么啦?
  7. 小觅双目相机如何使用_MYNT EYE S小觅双目摄像头标准(彩色)版结构光双目深度惯导相机3D...
  8. SpringBoot应用监控——Actuator安全隐患及解决方案
  9. 网络安全等级保护基本要求
  10. 联想主板9针开关接线图_空气开关、断路器、漏电保护,汇总学习一下
  11. win10安装steam有损计算机,win10系统steam安装更新失败的解决方法
  12. win10环境搭建vue开发环境
  13. BFM(Bus Functional Model )--总线功能模型
  14. 通过Safari浏览器获取iOS设备UDID(设备唯一标识符)
  15. C语言指针(函数指针数组,二级指针)
  16. 如何在没有密码的情况下解锁 iPhone
  17. Early Convolutions Help Transformers See Better
  18. android 音乐播放器专辑图片旋转,Android应用开发之简易、大气音乐播放器实现专辑倒影效果...
  19. BugKu_瑞士军刀
  20. 目前比较全面且实用的Java中文名称批量生成器

热门文章

  1. 我的前端学习资料 (附视频地址)
  2. redhat7.7的下载与安装(最快)
  3. 在 Microsoft Word 插入代码块(无需下载任何软件)
  4. MySQL教程-01
  5. 特征工程 特征选择 reliefF算法
  6. Incomplete chess boards 有趣.
  7. 记忆圆周率前二十位(耳机向)
  8. OLTP和OLAP的区别?
  9. CreateFont(MFC)字体设计
  10. renqun_youhua=2004892,竞价链接后缀标识都是什么含义?