zoukankan      html  css  js  c++  java
  • loj10009 P1717 钓鱼

    P1717 钓鱼

    贪心+优先队列

    先枚举最后走到哪个湖,然后用优先队列跑一遍贪心即可

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<queue>
    using namespace std;
    
    struct data{
        int id,val;//id:在第id个湖;val:还能钓到的鱼的数量
        bool operator < (const data &tmp) const{
            return val<tmp.val;
        }
    }; //大根堆定义
    int n,H,ans,t,f[102],a[102],d[102];
    int main(){
        scanf("%d%d",&n,&H); H*=12; //换算成以5分钟为单位时间
        for(int i=1;i<=n;++i) scanf("%d",&f[i]);
        for(int i=1;i<=n;++i) scanf("%d",&a[i]);
        for(int i=2;i<=n;++i) scanf("%d",&d[i]),d[i]+=d[i-1]; //直接计算前缀和
        for(int i=1;i<=n;++i){ //
            priority_queue<data> h; t=0;
            for(int j=1;j<=i;++j) h.push((data){j,f[j]}); //加入第一次钓鱼的数据
            for(int j=H-d[i];j>=1;--j){ //扣去路上的时间
                data x=h.top(); h.pop();
                if(!x.val) break; //只能取到0就跳出了
                t+=x.val;
                h.push((data){x.id,x.val>a[x.id] ? x.val-a[x.id]:0}); //鱼量减少
            }
            ans= ans>t ? ans:t;
        }
        printf("%d",ans);
        return 0;
    }
  • 相关阅读:
    java第五周作业
    ajax初探--实现简单实时验证
    Html+CSS二周目--->常用概念
    Html+CSS--->第一周初探
    Servlet细节整合
    多线程基础
    设计模式之单例模式(Singleton)
    配置文件Java读写
    Java基础之IO流
    JDBC基础
  • 原文地址:https://www.cnblogs.com/kafuuchino/p/9565203.html
Copyright © 2011-2022 走看看