QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#408438#8627. 归程Call_me_Eric#50 388ms5432kbC++142.7kb2024-05-10 11:57:592024-05-10 11:58:00

Judging History

你现在查看的是最新测评结果

  • [2024-05-10 11:58:00]
  • 评测
  • 测评结果:50
  • 用时:388ms
  • 内存:5432kb
  • [2024-05-10 11:57:59]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
bool stmemory;
namespace Call_me_Eric{
inline int read(){
    int x = 0, f = 1;char ch = getchar();
    while(ch < '0' || ch > '9'){if(ch == '-') f = -1;ch = getchar();}
    while(ch >= '0' && ch <= '9'){x = (x << 1) + (x << 3) + (ch ^ 48);ch = getchar();}
    return x * f;
}
const int maxn = 2e3 + 10, maxm = 1e4 + 10, maxt = 25;
int n, m, S, T, k;
double f[maxn][maxt + 10][2];
struct edge{
    int v, w, a, b;
    edge(int v = 0,int w = 0,int a = 0,int b = 0):v(v),w(w),a(a),b(b){}
};
vector<edge> edg[maxn];
double P[maxm];
int t[maxn], W[maxn];
double p[maxn];
double val[maxt + 10], g[maxt + 10], h[2][maxt + 10];
long long sum[maxm];
void main(){
    n = read(); m = read(); k = read(); S = read(); T = read();
    int u, v, w, a, b;
    for(int i = 1;i <= m;i++){
        u = read(), v = read(), w = read(), a = read(), b = read();
        edg[u].emplace_back(v, w, a, b); edg[v].emplace_back(u, w, a, b);
    }
    for(int i = 1;i <= k;i++){t[i] = read(); P[t[i]] = sum[t[i]] = W[i] = read();}
    for(int i = maxm - 2;i + 1;i--)sum[i] += sum[i + 1];
    int now = 0;
    for(int i = 0;i <= maxt;i++)f[T][i][0] = f[T][i][1] = 0;
    memset(f,0x3f,sizeof(f));
    for(int tim = maxm - maxt - 1;tim + 1;tim--){
        now = (now + maxt - 1) % maxt;
        for(int i = 1;i <= n;i++)f[i][now][0] = f[i][now][1] = 1e18;
        f[T][now][0] = f[T][now][1] = 0;
        for(int i = 1;i <= maxt;i++){
            val[i] = 1;g[i] = h[0][i] = h[1][i] = 0;
            for(int j = 1;j <= i;j++){
                if(P[tim + j]){
                    g[i] += val[i] * P[tim + j] / sum[tim + j];
                    h[0][i] += val[i] * P[tim + j] / sum[tim + j] * j;
                    h[1][i] += val[i] * P[tim + j] / sum[tim + j] * (i - j);
                    val[i] = val[i] * (1.0 - 1.0 * P[tim + j] / sum[tim + j]);
                }
            }
        }
        for(int i = 1;i <= n;i++)if(i != T){
            for(edge e : edg[i]){
                int v = e.v, w = e.w, a = e.a, b = e.b;
                f[i][now][0] = min(f[i][now][0], val[w] * (f[v][(now + w) % maxt][0] + w * a) + g[w] * f[v][(now + w) % maxt][1] + h[0][w] * a + h[1][w] * b);
                f[i][now][1] = min(f[i][now][1], w * b + f[v][(now + w) % maxt][1]);
            }
        }
    }
    printf("%.9lf\n",f[S][now][0]);
    return;
}
};
bool edmemory;
signed main(){
    auto stclock = clock();
    Call_me_Eric::main();
    auto edclock = clock();
    cerr << (&stmemory - &edmemory) / 1024.0 / 1024.0 << " Mib cost.\n";
    cerr << (edclock - stclock) * 1.0 / CLOCKS_PER_SEC << " Sec cost.\n";
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 15
Accepted

Test #1:

score: 15
Accepted
time: 10ms
memory: 5188kb

input:

100 99 50 44 13
1 2 3 49482 98172
3 2 14 15325 20412
3 4 17 72195 82332
4 5 2 5759 58007
6 5 17 74543 88637
6 7 8 30091 53620
7 8 6 25345 52430
9 8 13 256 54988
10 9 9 8715 9170
10 11 7 16469 60748
11 12 2 88501 90578
12 13 20 32990 42921
13 14 7 10662 18700
14 15 17 5604 94646
16 15 4 30714 75974
1...

output:

13265304.093092350

result:

ok found '13265304.0930924', expected '13265304.0930924', error '0.0000000'

Test #2:

score: 15
Accepted
time: 13ms
memory: 5152kb

input:

100 99 50 61 92
1 2 8 56827 98803
2 3 3 36553 43540
4 3 20 34157 88454
5 4 7 49172 49325
5 6 16 27664 60990
6 7 16 49587 99569
8 7 8 3438 94065
9 8 3 51023 69196
10 9 10 20096 75491
11 10 2 10221 84744
11 12 15 77262 89241
12 13 10 61655 91263
14 13 18 31797 39217
14 15 19 21171 87992
16 15 18 24615...

output:

11800189.227879068

result:

ok found '11800189.2278791', expected '11800189.2278791', error '0.0000000'

Test #3:

score: 15
Accepted
time: 6ms
memory: 5172kb

input:

100 99 50 79 14
1 2 10 29697 45013
3 2 11 58180 63946
2 4 10 70417 75332
3 5 13 12564 42521
3 6 12 1014 94538
7 6 19 31519 37381
8 2 19 43129 47092
6 9 11 11937 93000
10 2 19 1440 52945
10 11 15 51842 96769
12 10 12 13413 68632
5 13 11 2726 43016
4 14 10 40248 47577
5 15 10 60481 77412
10 16 14 5828...

output:

8097168.129025204

result:

ok found '8097168.1290252', expected '8097168.1290252', error '0.0000000'

Test #4:

score: 15
Accepted
time: 12ms
memory: 5096kb

input:

100 99 50 29 68
2 1 17 66839 69114
3 1 12 62309 68062
4 1 13 62445 65101
5 1 18 8349 29514
6 5 17 5167 93696
7 3 17 15610 93975
8 6 19 12032 75118
7 9 10 15961 31054
4 10 17 40891 51887
11 2 17 18755 75848
12 5 13 13065 89120
13 5 14 48662 55669
14 8 18 9847 28102
2 15 18 76863 81427
16 8 14 32493 3...

output:

8400900.947254049

result:

ok found '8400900.9472540', expected '8400900.9472541', error '0.0000000'

Subtask #2:

score: 10
Accepted

Test #5:

score: 10
Accepted
time: 36ms
memory: 5192kb

input:

100 400 1 3 100
10 1 13 18223 35112
1 2 12 55368 55369
11 2 17 26761 33328
10 11 16 32129 40781
3 12 11 54283 82995
19 20 14 61623 64279
4 13 19 68053 68404
28 29 12 51572 76296
5 14 17 60900 80188
37 38 19 4559 88722
6 15 18 70161 98792
46 66 18 31418 46063
7 16 12 59448 73370
74 75 16 61790 91015
...

output:

565023.000000000

result:

ok found '565023.0000000', expected '565023.0000000', error '0.0000000'

Test #6:

score: 10
Accepted
time: 38ms
memory: 5244kb

input:

100 400 1 43 61
2 1 4 49747 72455
3 2 9 88598 94622
3 4 20 55578 68329
4 5 3 76244 80337
6 5 17 45788 51679
7 6 7 21521 59847
7 8 13 57753 65729
9 8 10 78127 95442
9 10 17 8181 50146
11 10 8 14043 35566
12 11 20 5050 25253
13 12 15 61543 96300
14 13 2 32429 54948
14 15 12 93689 99997
16 15 3 17968 4...

output:

295670.000000000

result:

ok found '295670.0000000', expected '295670.0000000', error '0.0000000'

Subtask #3:

score: 0
Wrong Answer

Dependency #2:

100%
Accepted

Test #7:

score: 15
Accepted
time: 388ms
memory: 5292kb

input:

1000 4000 1 851 829
32 1 18 10334 59149
2 1 17 42334 90414
2 33 10 24226 37837
33 32 12 13963 44622
3 34 17 12554 59801
64 63 11 33339 55475
35 4 15 26593 88751
94 95 10 31806 40083
5 36 12 1159 18345
126 125 11 29893 91393
37 6 15 9013 56562
157 156 12 5742 28609
38 7 18 29456 34325
187 188 19 3358...

output:

3040262.000000000

result:

ok found '3040262.0000000', expected '3040262.0000000', error '0.0000000'

Test #8:

score: 15
Accepted
time: 372ms
memory: 5432kb

input:

800 4000 1 768 507
29 1 15 33191 46010
1 2 13 4678 63191
30 2 13 40409 90658
29 30 15 51433 69090
31 3 10 21936 96868
58 57 14 29518 80829
4 32 13 67117 79907
85 86 15 24145 98188
33 5 18 802 79736
113 114 20 20455 72496
34 6 15 49934 86035
141 142 13 55169 95675
7 35 20 49304 75881
170 169 11 1656 ...

output:

1252192.000000000

result:

ok found '1252192.0000000', expected '1252192.0000000', error '0.0000000'

Test #9:

score: 0
Wrong Answer
time: 109ms
memory: 5212kb

input:

1000 999 1 270 794
2 1 20 26017 100000
3 2 20 67920 100000
4 3 20 18660 100000
4 5 20 90882 100000
5 6 20 81270 100000
7 6 20 37164 100000
7 8 20 12522 100000
9 8 20 26819 100000
10 9 20 51100 100000
10 11 20 18243 100000
12 11 20 84082 100000
12 13 20 88885 100000
14 13 20 61329 100000
14 15 20 883...

output:

575320916.000476837

result:

wrong answer 1st numbers differ - expected: '825513521.0000000', found: '575320916.0004768', error = '0.3030751'

Subtask #4:

score: 25
Accepted

Dependency #1:

100%
Accepted

Dependency #2:

100%
Accepted

Test #16:

score: 25
Accepted
time: 36ms
memory: 5044kb

input:

100 400 20 100 6
1 10 10 37861 50357
2 1 19 7830 74673
2 11 15 33326 69819
10 11 12 39344 85527
12 3 20 15784 55754
20 19 11 9872 21978
13 4 13 22401 43523
29 28 17 84903 88765
5 14 10 22745 42111
38 37 16 15008 26758
6 15 13 5270 49372
65 66 17 55158 78378
16 7 20 12236 70841
74 75 12 92834 99928
8...

output:

830382.640776699

result:

ok found '830382.6407767', expected '830382.6407767', error '0.0000000'

Test #17:

score: 25
Accepted
time: 36ms
memory: 5232kb

input:

100 400 50 10 45
1 10 17 29451 97470
1 2 10 63349 72452
2 11 14 33309 76111
10 11 12 30976 88523
12 3 16 14864 48989
20 19 20 16901 38920
13 4 12 7712 71353
28 29 19 54313 55358
14 5 20 20325 25058
38 37 20 2537 70940
15 6 12 36876 83633
66 65 16 7022 21311
16 7 15 43978 77802
74 75 20 5297 80929
8 ...

output:

1870147.831082073

result:

ok found '1870147.8310821', expected '1870147.8310821', error '0.0000000'

Test #18:

score: 25
Accepted
time: 37ms
memory: 5240kb

input:

100 400 50 45 36
2 1 17 2583 5228
3 2 2 9015 24523
3 4 6 40155 76911
5 4 19 65855 77215
5 6 18 2468 80202
6 7 12 33458 72325
8 7 11 33603 95807
9 8 3 29210 53612
10 9 4 31460 54746
10 11 11 43776 49774
12 11 4 85145 90080
12 13 8 46736 80445
14 13 14 54280 87183
15 14 20 5400 10347
15 16 4 28993 705...

output:

173526.432223491

result:

ok found '173526.4322235', expected '173526.4322235', error '0.0000000'

Test #19:

score: 25
Accepted
time: 36ms
memory: 5244kb

input:

99 400 50 46 64
2 1 19 13089 92563
3 1 10 16869 92046
4 1 19 12704 91015
5 1 16 19003 95870
6 1 13 15774 91467
7 1 16 37876 39730
1 8 20 13681 92507
9 3 19 10619 95941
8 10 12 18843 94556
11 1 15 17935 91522
12 2 16 14554 91577
13 1 16 18816 94796
12 14 15 14831 90319
1 15 19 14791 97793
16 1 11 178...

output:

1421519.770244821

result:

ok found '1421519.7702448', expected '1421519.7702448', error '0.0000000'

Test #20:

score: 25
Accepted
time: 36ms
memory: 5212kb

input:

100 399 49 2 35
77 2 11 39406 61475
3 62 14 86827 91338
84 4 10 52113 70666
5 59 17 13757 38998
24 6 16 75253 88768
84 7 14 5253 60755
1 8 17 15153 44899
9 98 17 14513 79392
1 10 19 31791 97272
1 11 13 49000 60720
53 12 16 72684 79365
78 13 14 62381 63614
14 20 19 45859 70469
9 15 19 10656 59249
16 ...

output:

86081.194629219

result:

ok found '86081.1946292', expected '86081.1946292', error '0.0000000'

Test #21:

score: 25
Accepted
time: 33ms
memory: 5144kb

input:

100 399 49 12 41
2 1 13 3 94258
3 2 17 3 93831
3 4 4 1 99696
4 5 4 9 98307
5 6 19 4 92875
7 6 6 4 90021
8 7 19 3 98986
8 9 7 1 99168
10 9 7 9 98140
10 11 4 6 90202
12 11 3 8 92084
12 13 3 3 90802
13 14 17 9 93781
14 15 15 7 98251
15 16 3 6 99408
17 16 3 6 95934
17 18 4 1 91316
19 18 1 9 93281
19 20 ...

output:

137960.713312934

result:

ok found '137960.7133129', expected '137960.7133129', error '0.0000000'

Test #22:

score: 25
Accepted
time: 34ms
memory: 5108kb

input:

100 400 49 67 42
2 1 9 10 92500
3 2 7 8 94006
3 4 14 6 99372
4 5 9 8 92282
5 6 1 6 93767
6 7 9 8 91829
8 7 7 1 92338
8 9 17 10 90987
10 9 10 9 97993
11 10 1 4 95291
12 11 1 3 99324
13 12 20 6 98346
13 14 2 4 92811
15 14 14 6 90258
16 15 8 6 99898
16 17 11 1 92890
17 18 14 3 90598
19 18 4 4 92228
20 ...

output:

82675.845413120

result:

ok found '82675.8454131', expected '82675.8454131', error '0.0000000'

Test #23:

score: 25
Accepted
time: 37ms
memory: 5236kb

input:

100 399 50 86 21
2 1 14 2 95596
2 3 5 3 90038
3 4 2 5 91466
5 4 10 2 94957
6 5 3 7 96519
7 6 2 3 92328
7 8 10 7 90223
8 9 13 9 91236
9 10 17 1 92850
10 11 6 1 91936
11 12 17 2 95236
13 12 16 5 96486
13 14 9 3 96082
15 14 15 10 98857
15 16 1 7 99137
17 16 3 10 98794
18 17 3 10 95034
18 19 4 4 94929
2...

output:

52864.430805536

result:

ok found '52864.4308055', expected '52864.4308055', error '0.0000000'

Test #24:

score: 25
Accepted
time: 37ms
memory: 5172kb

input:

100 400 50 64 76
2 1 4 8 95153
3 2 2 4 93276
4 3 6 4 93115
5 4 8 3 92039
5 6 14 8 92164
7 6 13 2 92054
7 8 9 3 90420
8 9 10 10 97740
9 10 3 5 98529
11 10 13 9 90557
12 11 20 10 97608
12 13 12 5 95010
14 13 14 2 99355
15 14 12 7 92489
16 15 7 3 99690
16 17 17 7 98336
18 17 17 3 94557
18 19 14 1 94166...

output:

19515.000000000

result:

ok found '19515.0000000', expected '19515.0000000', error '0.0000000'

Subtask #5:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

100%
Accepted

Dependency #3:

0%