UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#214402#2767. 摆烂erican50191ms8572kbC++112.9kb2024-11-18 20:13:482024-11-19 08:31:16

answer

/*  Erica N  */
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define int long long
#define ull unsigned long long
#define pii pair<int, int>
#define ps second
#define pf first
#define itn int
#define rd read()
int read(){
    int xx = 0, ff = 1;char ch = getchar();
    while (ch < '0' || ch > '9') {if (ch == '-')ff = -1; ch = getchar();}
    while (ch >= '0' && ch <= '9')xx = xx * 10 + (ch - '0'), ch = getchar();
    return xx * ff;
}
// void write(int out) {
// 	if (out < 0)
// 		putchar('-'), out = -out;
// 	if (out > 9)
// 		write(out / 10);
// 	putchar(out % 10 + '0');
// }
#define cdbg(x...) do { cerr << #x << " -> "; err(x); } while (0)
void err() { cerr << endl; }
template<template<typename...> class T, typename t, typename... A>
void err(T<t> a, A... x) { for (auto v: a) cerr << v << ' '; err(x...); }
template<typename T, typename... A>
void err(T a, A... x) { cerr << a << ' '; err(x...); }


const int N = 3e5 + 5;
const int INF = 1e18;
const int M = 1e7;
const int MOD = 1e9 + 7;


int a[N];
int t[N];
int nxt[N];
int pos[N];
int tot;

int f[N];//将前i个送入并返回的最小用时

priority_queue<pii> pl;
priority_queue<int> pr;

signed main() {
    // freopen(".in","r",stdin);
    // freopen(".out","w",stdout);

    int n=rd;
    for(int i=1;i<=n;i++){

        t[i]=rd;
        a[i]=rd;
        
    }


    int s=n+1;
    for(int i=n;~i;i--){
        nxt[i]=s;
        if(a[i]>a[s])s=i,pos[++tot]=s;
    }

    reverse(pos+1,pos+tot+1);

    memset(f,0x3f3f,sizeof f);
    f[0]=0;
    pl.push({-(f[0]+2*a[nxt[0]]),0});
    for(int i=1;i<=tot;i++){
        while(pl.size()){
            int x=pl.top().ps;
            if(f[x]<t[pos[i]]){
                int y=-pl.top().pf;
                pl.pop();
                y-=f[x];
                pr.push(-y);
            }else{
                break;
            }
        }
        if(pl.size())f[i]=min(f[i],-pl.top().pf);
        if(pr.size())f[i]=min(f[i],t[pos[i]]-pr.top());
        // for(int j=0;j<i;j++){
        //     f[i]=min(f[i],max(t[pos[i]]+2*a[nxt[j]],f[j]+2*a[nxt[j]]));
        // }
        pl.push({-(f[i]+2*a[nxt[i]]),i});
    }
    // cdbg(f[1]);
    cout<<f[tot]<<endl;



    // for(int i=1;i<=n;i++){
    //     cerr<<nxt[i]<<' ';
    // }cerr<<endl;


    // int cur=s;
    //  int tim=0;
    // while(cur<=n){
    //     tim=max(tim,t[cur]);
    //     int mx=a[cur];
    //     if(tim+2*mx<=t[nxt[cur]]){
    //         tim=t[nxt[cur]];
    //         cur=nxt[cur];
    //         continue;
    //     }
    //     int rt=0;
    //     while(nxt[cur]<=n&&tim+rt+(t[nxt[cur]]-t[cur])+2*mx<=tim+rt+mx*2+2*a[nxt[cur]]){
    //         cur=nxt[cur];
    //         rt+=(t[nxt[cur]]-t[cur]);
    //     }
    //     tim=tim+rt+2*mx;
    //     cdbg(cur,tim);
    //     cur=nxt[cur];
    // }

    // cout<<tim<<endl;




}

详细

小提示:点击横条可展开更详细的信息

Subtask #1:

score: 10
Accepted

Test #1:

score: 10
Accepted
time: 0ms
memory: 3556kb

input:

20
12513359 382258501
49946422 294259408
61782741 259996549
128874560 457675284
152578248 511428369
...

output:

2781551734

result:

ok 1 number(s): "2781551734"

Test #2:

score: 0
Accepted
time: 0ms
memory: 3552kb

input:

20
6592046 616393821
8538879 124771654
24979050 168650283
59952328 506075107
128878498 796836890
168...

output:

2878186356

result:

ok 1 number(s): "2878186356"

Test #3:

score: 0
Accepted
time: 0ms
memory: 3556kb

input:

20
2099663 147467539
25290040 156795746
197254068 590585918
198843927 512239904
222920966 456981246
...

output:

2770880243

result:

ok 1 number(s): "2770880243"

Test #4:

score: 0
Accepted
time: 0ms
memory: 3560kb

input:

20
66393530 420843093
90129695 489656570
131248562 182208891
291691534 751771331
342922878 673384475...

output:

2926027520

result:

ok 1 number(s): "2926027520"

Test #5:

score: 0
Accepted
time: 0ms
memory: 3560kb

input:

20
141852945 69130050
155003677 784901688
156591867 730149439
161520357 619098795
188670057 61380271...

output:

2878920725

result:

ok 1 number(s): "2878920725"

Test #6:

score: 0
Accepted
time: 0ms
memory: 3560kb

input:

20
0 333333333
1 333333332
2 333333331
3 333333330
4 333333329
5 333333328
6 333333327
7 333333326
8...

output:

888888906

result:

ok 1 number(s): "888888906"

Test #7:

score: 0
Accepted
time: 0ms
memory: 3572kb

input:

20
0 200000000
1 199999999
2 199999998
3 199999997
4 199999996
5 199999995
6 199999994
7 199999993
8...

output:

799218728

result:

ok 1 number(s): "799218728"

Subtask #2:

score: 20
Accepted

Test #8:

score: 20
Accepted
time: 0ms
memory: 3576kb

input:

1000
132699 718470029
234343 395421925
1290414 393017296
1399642 607415822
1402810 515471990
2008288...

output:

2991845504

result:

ok 1 number(s): "2991845504"

Test #9:

score: 0
Accepted
time: 0ms
memory: 3576kb

input:

1000
1460927 635822050
1474184 113973702
2262058 184319286
2754182 45688636
3158543 762355475
357426...

output:

2997073536

result:

ok 1 number(s): "2997073536"

Test #10:

score: 0
Accepted
time: 0ms
memory: 3580kb

input:

1000
2118442 141038751
2135116 387165975
4874198 290249307
6872737 82266843
7401335 726603624
756080...

output:

2995302771

result:

ok 1 number(s): "2995302771"

Test #11:

score: 0
Accepted
time: 0ms
memory: 3580kb

input:

1000
437090 934565437
1175198 156863320
1198404 324764019
2277385 373440655
2425307 392581950
350360...

output:

2995901355

result:

ok 1 number(s): "2995901355"

Test #12:

score: 0
Accepted
time: 0ms
memory: 3580kb

input:

1000
9066 773817477
123486 806680042
851047 596461942
992394 523789453
1003388 520126158
1323726 958...

output:

2992153228

result:

ok 1 number(s): "2992153228"

Test #13:

score: 0
Accepted
time: 0ms
memory: 3572kb

input:

1000
1219327 803904616
2680619 571390377
2920737 199860734
3524708 883722438
4171344 134002719
59874...

output:

2997734121

result:

ok 1 number(s): "2997734121"

Test #14:

score: 0
Accepted
time: 2ms
memory: 3576kb

input:

1000
2880284 488746460
3414969 562543737
4498732 74314414
9375222 111266686
9458421 596112995
963592...

output:

2998591235

result:

ok 1 number(s): "2998591235"

Test #15:

score: 0
Accepted
time: 0ms
memory: 3580kb

input:

1000
1239163 666132179
1871097 706139536
2956078 487495665
3259471 69911742
4479955 188362973
586756...

output:

2996854561

result:

ok 1 number(s): "2996854561"

Test #16:

score: 0
Accepted
time: 0ms
memory: 3576kb

input:

1000
630980 355641503
934118 736144505
1523728 365898752
4057089 829930253
4910133 224420115
4990452...

output:

2999709988

result:

ok 1 number(s): "2999709988"

Test #17:

score: 0
Accepted
time: 0ms
memory: 3580kb

input:

1000
193594 350732868
965625 322880549
1694055 576483511
1992769 754390117
2507741 171984733
3271204...

output:

2999420445

result:

ok 1 number(s): "2999420445"

Test #18:

score: 0
Accepted
time: 2ms
memory: 3620kb

input:

1000
0 333333333
1 333333332
2 333333331
3 333333330
4 333333329
5 333333328
6 333333327
7 333333326...

output:

888889886

result:

ok 1 number(s): "888889886"

Test #19:

score: 0
Accepted
time: 2ms
memory: 3632kb

input:

1000
0 200000000
1 199999999
2 199999998
3 199999997
4 199999996
5 199999995
6 199999994
7 199999993...

output:

799217760

result:

ok 1 number(s): "799217760"

Subtask #3:

score: 20
Accepted

Test #20:

score: 20
Accepted
time: 17ms
memory: 5900kb

input:

100000
9326 430414358
13368 156324232
15149 550951304
22296 345034579
22578 397947033
37137 49312905...

output:

2999984291

result:

ok 1 number(s): "2999984291"

Test #21:

score: 0
Accepted
time: 18ms
memory: 5900kb

input:

100000
1281 980120279
38572 969057410
60961 443629644
67305 918262285
68761 540475664
79259 86368005...

output:

2999973779

result:

ok 1 number(s): "2999973779"

Test #22:

score: 0
Accepted
time: 18ms
memory: 5900kb

input:

100000
20710 863020655
22837 465689267
34425 232297482
37426 410827133
47298 825839625
48599 2328793...

output:

2999991115

result:

ok 1 number(s): "2999991115"

Test #23:

score: 0
Accepted
time: 8ms
memory: 5896kb

input:

100000
1893 587093713
12130 188883761
20509 103771956
23181 427935148
30291 289716104
52036 41982854...

output:

2999953325

result:

ok 1 number(s): "2999953325"

Test #24:

score: 0
Accepted
time: 17ms
memory: 5896kb

input:

100000
9157 466195030
10932 448643920
15616 675011785
24802 20969130
42481 213957558
43201 100624199...

output:

2999986961

result:

ok 1 number(s): "2999986961"

Test #25:

score: 0
Accepted
time: 17ms
memory: 5900kb

input:

100000
8028 735757896
15346 778429486
19608 762797726
36073 700770644
38385 673827857
39670 79333540...

output:

2999964970

result:

ok 1 number(s): "2999964970"

Test #26:

score: 0
Accepted
time: 11ms
memory: 5900kb

input:

100000
18066 489619655
39420 363288479
45624 255823520
53848 768452718
86073 570556759
97457 1152834...

output:

2999949901

result:

ok 1 number(s): "2999949901"

Test #27:

score: 0
Accepted
time: 15ms
memory: 5896kb

input:

100000
9572 354230841
44475 137493766
73724 908871450
83706 376797074
88538 381989371
90425 46309979...

output:

2999992149

result:

ok 1 number(s): "2999992149"

Test #28:

score: 0
Accepted
time: 17ms
memory: 5896kb

input:

100000
2617 628340050
16629 69440544
45392 441060577
52161 702044189
66272 750166177
70981 780473233...

output:

2999978454

result:

ok 1 number(s): "2999978454"

Test #29:

score: 0
Accepted
time: 19ms
memory: 5900kb

input:

100000
1820 854489707
4143 351640051
6324 246260208
10128 483185284
12354 258240070
17250 502913471
...

output:

2999978980

result:

ok 1 number(s): "2999978980"

Test #30:

score: 0
Accepted
time: 11ms
memory: 8568kb

input:

100000
0 333333333
1 333333332
2 333333331
3 333333330
4 333333329
5 333333328
6 333333327
7 3333333...

output:

888988886

result:

ok 1 number(s): "888988886"

Test #31:

score: 0
Accepted
time: 17ms
memory: 8572kb

input:

100000
0 200000000
1 199999999
2 199999998
3 199999997
4 199999996
5 199999995
6 199999994
7 1999999...

output:

799119142

result:

ok 1 number(s): "799119142"

Subtask #4:

score: 0
Runtime Error

Test #32:

score: 0
Runtime Error

input:

2000000
181 24185667
293 532288461
1433 921996635
1694 629544979
2540 173534643
2662 963172401
3159 ...

output:


result:


Subtask #5:

score: 0
Runtime Error

Test #42:

score: 0
Runtime Error

input:

2000000
684 624071334
1181 709831992
1397 43325781
1938 430417709
4157 60566309
4568 912818933
5265 ...

output:


result: