求助大佬,80分WA
  • 板块P1717 钓鱼
  • 楼主淸梣ling
  • 当前回复4
  • 已保存回复4
  • 发布时间2021/8/16 20:41
  • 上次更新2023/11/4 10:25:49
查看原帖
求助大佬,80分WA
239192
淸梣ling楼主2021/8/16 20:41

只有一个点没有过,思想是队列+贪心,看了半天也找不到bug,求助 dalaodalao 帮忙~

#include<bits/stdc++.h>
using namespace std;

int n,h;
int f[30],d[30],t[30];

int check(int t,int x)
{
    priority_queue<pair<int,int> > q;
    int i;
    pair<int,int> p;
    int num=0;

    for(i=1;i<=x;i++)
    q.push(make_pair(f[i],i));

    while(q.size()&&t--)
    {
        p=q.top(); q.pop();
        if(p.first<=0) break;
        num+=p.first;
        q.push(make_pair(p.first-d[p.second],p.second));
    }

    return num;
}
int main()
{
    int i;
    int tmp=0,ans=0;

    cin>>n>>h;
    for(i=1;i<=n;i++)
    scanf("%d",&f[i]);
    for(i=1;i<=n;i++)
    scanf("%d",&d[i]);
    for(i=2;i<=n;i++)
    scanf("%d",&t[i]);

    h=h*60/5;

    for(i=1;i<=n;i++)
    {
        tmp+=t[i];
        ans=max(ans,check(h-tmp,i));
    }

    cout<<ans;
    return 0;
}
2021/8/16 20:41
加载中...