• 钓鱼(贪心+优先队列+重载运算符)


    钓鱼

    题目描述:
    话说发源于小朋友精心设计的游戏被电脑组的童鞋们藐杀之后非常不爽,为了表示安慰和鼓励,VIP999决定请他吃一次“年年大丰收”,为了表示诚意,他还决定亲自去钓鱼,但是,因为还要准备2013NOIP,z老师只给了他H(1<=H<=16)个小时的空余时间,假设有N(2<=n<=25)个鱼塘都在一条水平路边,从左边到右编号为1、2、3、。。。、n)。VIP是个很讲究效率的孩子,他希望用这些时间钓到尽量多的鱼。他从湖1出发,向右走,有选择的在一些湖边停留一定的时间钓鱼,最后在某一个湖边结束钓鱼。他测出从第I个湖到I+1个湖需要走5*ti分钟的路,还测出在第I个湖边停留,第一个5分钟可以钓到鱼fi,以后再每钓5分钟鱼,鱼量减少di。为了简化问题,他假定没有其他人钓鱼,也不会有其他因素影响他钓到期望数量的鱼。请编程求出能钓最多鱼的数量。
    输入输出格式
    输入格式:
    第一行:湖的数量n。
    第二行:时间h(小时)。
    第三行:n个数,f1,f2,…fn。
    第四行:n个数,d1,d2,….dn。
    第五行:n-1个数,t1,t2,….tn-1
    输出格式:
    一个数,所能钓鱼的最大数量。
    输入输出样例
    输入样例1:
    2
    1
    10 1
    2 5
    2
    输出样例1:
    31

    #include<iostream>
    #include<queue>
    using namespace std;
    const int maxn=30;
    int n,h,ans,tot,t[maxn],d[maxn];
    struct node
    {
        int f;
        int num;
        bool operator < (node x)const
        {
            return f<x.f;
        }
    }a[maxn];
    priority_queue<node> q;
    int main()
    {
        cin>>n>>h;
        h=h*12;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i].f;
            a[i].num=i;
        }
        for(int i=1;i<=n;i++)
        cin>>d[i];
        for(int i=1;i<=n-1;i++)
        cin>>t[i];
        for(int i=1;i<=n;i++)
        {
            h=h-t[i-1];tot=0;
            while(!q.empty())
            q.pop();
            for(int j=1;j<=i;j++)
            q.push(a[j]);
            for(int j=h;j>0;j--)
            {
                node s;
                s.f=q.top().f-d[q.top().num];
                s.num=q.top().num;
                if(q.top().f>0)
                tot+=q.top().f;
                q.pop();
                q.push(s);
            }
            ans=max(ans,tot);
        }
        cout<<ans;
        return 0;
    }
  • 相关阅读:
    MySql使用游标Cursor循环(While)更新数据
    初试TinyIoCContainer笔记
    用Razor做静态页面生成器
    在CentOS6.5上安装MariaDB
    mono的远程调试
    mono3.2.3+Jexus5.5+openSuSE13.1的asp.net
    mono3.2和monodevelop4.0在ubuntu12.04上两天的苦战
    第一节知识点:.net与c#的概念
    支付宝支付功能(使用支付宝sdk)
    vs2017/vs2019 去掉 单击aspx文件预览页面
  • 原文地址:https://www.cnblogs.com/cax1165/p/6070998.html
Copyright © 2020-2023  润新知