山治的婚约

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;
}

  

最新文章

  1. hibernate一对一主键双向关联
  2. libevent库1.4升级到2.0时无法flush的解决办法
  3. ahjesus C# Flags 位域略说
  4. 微信jssdk,实现多图上传的一点心得
  5. Cheatsheet: 2013 11.01 ~ 11.11
  6. BZOJ 1823 满汉全席
  7. URI、URL和URN之间的区别与联系
  8. Python数据分析(二): Pandas技巧 (2)
  9. 关于C#中函数声明带参数的函数
  10. js的一些注意点
  11. A1131. Subway Map (30)
  12. python+selenium十五:CSS与Jquery
  13. android 混淆基本知识
  14. input框触发回车事件
  15. PHP微信公众号开发之自动回复
  16. Django的学习(三)————models
  17. java读取写入oracle的blob字段工具类
  18. jsp拾遗
  19. 在vsphere6.5启用Tesla K80
  20. HDU 2571 命运 (入门dp)

热门文章

  1. ipad&amp;mobile通用webapp框架前哨战
  2. UIScrollView的封装
  3. [Android]使用Dagger 2依赖注入 - API(翻译)
  4. iOS - GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD - ②)
  5. java web 之客户关系管理系统
  6. Mybatis环境
  7. yii2权限控制rbac之rule详细讲解
  8. ASP.NET MVC 5 01 - ASP.NET概述
  9. monkey命令选项参考
  10. Java 性能优化之 String 篇