zoukankan      html  css  js  c++  java
  • STL优先队列 hdu1896

    扔石头 hdu 1896

    题意:扔石头,到奇数个石头往前仍,偶数个石头什么也不做,看最后能扔多远,输出最远的距离

    优先队列,一次放入,定义优先级位置靠前距离小的石头优先级高,奇数个取出栈顶更新后放入,偶数个直接取出,队列为空结束。

    利用优先队列,将位置大的放在最前面,小的放在最后边

    测试数据

    输入数据

    2

    2

    1 5 

    2 4

    1 5

    6 6

    输出

    11

    12

    分析输出结果  11是优先队列排好,取最后边的数,就是第一次取1 5 然后扔完位置 6 5 ,第二次取的时候,因为是偶数,所以把 2 4(因为2 4 的优先级大于6 5 ,因为重载了运算符)给扔了,什么操作也没有,第三次的时候 6 5 所以结果6+5 =11 再次进队,第四次的时候只有一个元素了,因为4是偶数,所以什么也不做,最后结果就是 11

    输出12  11是优先队列排好,取最后边的数,就是第一次取1 5 然后扔完位置 6 5 ,第二次取的时候,因为是偶数,所以把6 5(因为6 5 的优先级大于6 6 )给扔了,什么操作也没有,第三次的时候 6 6 所以结果6+6 =12 再次进队,第四次的时候只有一个元素了,因为4是偶数,所以什么也不做,最后结果就是 12

    代码参照 https://www.cnblogs.com/yzm10/p/7222616.html

    //优先队列
    //date:2020.4.30
    #include <bits/stdc++.h>
    using namespace std;
    struct Node
    {
        int now,jump;
        friend operator <(Node a,Node b)
        {
            if(a.now==b.now)
                return a.jump>b.jump;
            return a.now>b.now;
        }
    } node,point;
    int main()
    {
        int t,n,res=0,c=0;
        priority_queue<Node>q;
        cin>>t;
        while(t--)
        {
            cin>>n;
            for(int i=0; i<n; i++)
            {
                scanf("%d%d",&node.now,&node.jump);
                q.push(node);
            }
            c=0;
            res=0;
            while(q.size())
            {
                c++;
                point.now=q.top().now;
                point.jump=q.top().jump;
                q.pop();
                if(c%2!=0)
                {
                    point.now=point.now+point.jump;
                    if(point.now>res)
                        res=point.now;
                    q.push(point);
                }
            }
            cout<<res<<endl;
        }
        return 0;
    }
  • 相关阅读:
    Java实现调用API识别图像中的文字并对图片重命名
    推荐大家一个人工智能领域安全信息学方向旗舰会议(EI索引),诚邀广大学子投稿!
    python随笔 1
    Neo4j
    Web项目部署到tomcat外部并配置其他端口访问和无项目名
    springboot项目
    解决找不到参数 问题,MyBatisSystemException
    置顶功能 -- 数据表格的某行数据的置顶功能 -- Demo
    Spring-Task定时任务, (springboot项目, 动态设置时间) -- Demo
    BootStrap-table表格 -- Demo
  • 原文地址:https://www.cnblogs.com/someonezero/p/12807140.html
Copyright © 2011-2022 走看看