WA#11#13#17
查看原帖
WA#11#13#17
355521
rainbow_star楼主2021/12/18 16:10

还是不明白为什么过不了

//m秒内,每一秒被切断的蚯蚓被切断前的长度(有m个数)
//m秒后,所有蚯蚓的长度(有n+m个数)
//手写队列 
#include<iostream>
#include<cstdio>
#include<queue>
#include<algorithm>
using namespace std;
typedef long long ll;
const ll N=7000005;
priority_queue<ll> que;
ll h1,h2,h3,t1,t2,t3;
ll n,m,q,t;
ll u,v;
//共有n只蚯蚓,救兵还需要m秒才能到来,其余蚯蚓的长度都会增加q, p=u/v
ll q1[N];//初始时n只蚯蚓的长度
ll q2[N],q3[N];
bool cmp(ll x,ll y)
{
    return x>y;
}
bool flag=false;
int main()
{
    scanf("%lld%lld%lld%lld%lld%lld",&n,&m,&q,&u,&v,&t);
    ll i;
    ll x=-1,y=-1,z=-1,maxx;
    for(i=1;i<=n;i++)
        scanf("%lld",&q1[i]);
    sort(q1+1,q1+n+1,cmp);
    h1=1;
    t1=n+1;
    h2=t2=h3=t3=1;
    for(i=1;i<=m;i++)
    {
        x=y=z=-1;
        flag=false;
        if(t1>h1)
            x=q1[h1];
        if(t2>h2)
            y=q2[h2];
        if(t3>h3)
            z=q3[h3];
        maxx=max(x,max(y,z));
        if(x==maxx)
        {
            if(i%t==0)
                printf("%lld ",x+q*(i-1));
            h1++;
            flag=true;
            q2[t2]=((x+q*(i-1))*u/v-q*i);
            t2++;
            q3[t3]=((x+q*(i-1))-(x+q*(i-1))*u/v-q*i);
            t3++;
        }
        if(y==maxx&&flag==false)
        {
            if(i%t==0)
                printf("%lld ",y+q*(i-1));
            h2++;
            flag=true;
            q2[t2]=((y+q*(i-1))*u/v-q*i);
            t2++;
            q3[t3]=((y+q*(i-1))-(y+q*(i-1))*u/v-q*i);
            t3++;
        }
        if(z==maxx&&flag==false)
        {
            if(i%t==0)
                printf("%lld ",z+q*(i-1));
            h3++;
            q2[t2]=((z+q*(i-1))*u/v-q*i);
            t2++;
            q3[t3]=((z+q*(i-1))-(z+q*(i-1))*u/v-q*i);
            t3++;
        }
    }
    printf("\n");
    i=0;
    while(t1>h1)
    {
        que.push(q1[h1]);
        h1++;
    }
    while(t2>h2)
    {
        que.push(q2[h2]);
        h2++;
    }
    while(t3>h3)
    {
        que.push(q3[h3]);
        h3++;
    }
    for(i=1;i<=n+m;i++)
    {
        if(i%t==0)
            printf("%lld ",que.top()+q*m);
        que.pop();
    }
    return 0;
}

p.s.调了一整天了,从TLE调到了RE,从RE调到了WA

谢谢大佬

2021/12/18 16:10
加载中...