编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#88252 #1388. 莉可莉丝 Accepted 100 1745 ms 31996 K C++ 11 (NOI) / 1.8 K wty 2023-05-08 13:14:05
显示原始代码
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

#define rep(i, n) for (int i = 0; i < (n); i++)
typedef long long LL;
const int INF = 0x3f3f3f3f;

const int maxn = 2e3 + 10;
const int maxm = 1e4 + 10;
struct Edge {
    int b, nt, w;
} E[maxm];
int ecnt, head[maxn];
void add_edge(int u, int v, int w) {
    E[++ecnt].b = v;
    E[ecnt].w = w;
    E[ecnt].nt = head[u];
    head[u] = ecnt;
}
struct Dis {
    int d1, d2;
    Dis(int d1 = INF, int d2 = INF) : d1(d1), d2(d2) {}
    void update(Dis rhs) {
        update(rhs.d1);
        update(rhs.d2);
    }
    void update(int d) {
        if (d >= INF)
            return;
        if (d < d1)
            d2 = d1, d1 = d;
        else if (d < d2)
            d2 = d;
    }
    Dis operator+(const int w) const { return Dis(d1 + w, d2 + w); }
} dis[maxn][maxn];

int in[maxn], n, m, q[maxn], rear;
void toposort(int st) {
    q[++rear] = st;
    for (int front = 1; front <= rear; front++) {
        int u = q[front];
        for (int e = head[u]; e; e = E[e].nt) {
            int v = E[e].b;
            if (--in[v] == 0)
                q[++rear] = v;
        }
    }
}
void getdis(int st, Dis dis[maxn]) {
    dis[st] = Dis(0, INF);
    for (int i = 0; i <= rear; i++) {
        int u = q[i];
        for (int e = head[u]; e; e = E[e].nt) {
            int v = E[e].b, w = E[e].w;
            dis[v].update(dis[u] + w);
        }
    }
}

void solve() {
    scanf("%d%d", &n, &m);
    rep(i, m) {
        int u, v, w;
        scanf("%d%d%d", &u, &v, &w);
        add_edge(u, v, w);
        in[v]++;
    }
    toposort(1);
    for (int i = 1; i <= n; i++) getdis(i, dis[i]);
    int ans = INF;
    for (int u = 1; u <= n; u++)
        for (int v = 1; v <= n; v++)
            if (dis[u][v].d1 != INF && dis[u][v].d2 != INF)
                ans = min(ans, dis[1][u].d1 + dis[u][v].d1 + dis[u][v].d2 + dis[v][n].d1);
    printf("%d\n", ans);
}

int main() {
    solve();
    return 0;
}
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:12 ms
内存:31816 KiB

输入文件(01.in

4 4
1 2 5
1 3 7
2 4 6
3 4 8

答案文件(01.ans

26

用户输出

26

系统信息

Exited with return code 0
测试点 #2
Accepted
得分:100
用时:14 ms
内存:31808 KiB

输入文件(02.in

5 10
1 2 1
1 3 3
3 4 9
2 5 1
1 5 10
4 5 2
2 3 9
3 5 3
1 4 4
2 4 7

答案文件(02.ans

8

用户输出

8

系统信息

Exited with return code 0
测试点 #3
Accepted
得分:100
用时:12 ms
内存:31860 KiB

输入文件(03.in

9 10
1 2 1
2 3 1
3 4 1
4 9 1
1 5 2
5 8 1
5 6 1
6 7 1
8 7 2
7 9 1

答案文件(03.ans

8

用户输出

8

系统信息

Exited with return code 0
测试点 #4
Accepted
得分:100
用时:15 ms
内存:31856 KiB

输入文件(04.in

50 100
1 2 331
2 3 423
3 4 831
3 5 196
2 6 467
4 7 841
5 8 589
6 9 930
9 10 481
3 11 293
7 12 968
5 
<852 bytes omitted>

答案文件(04.ans

4204

用户输出

4204

系统信息

Exited with return code 0
测试点 #5
Accepted
得分:100
用时:13 ms
内存:31812 KiB

输入文件(05.in

50 100
1 2 37
2 3 90
3 4 270
1 5 616
4 6 462
6 7 801
5 8 922
8 9 701
5 10 204
7 11 330
1 12 588
6 13
<840 bytes omitted>

答案文件(05.ans

1685

用户输出

1685

系统信息

Exited with return code 0
测试点 #6
Accepted
得分:100
用时:91 ms
内存:31980 KiB

输入文件(06.in

942 9498
1 2 87293
1 3 92214
3 4 20834
3 5 924
4 6 71171
6 7 66669
6 8 57264
6 9 98803
5 10 52661
7 
<129920 bytes omitted>

答案文件(06.ans

214920

用户输出

214920

系统信息

Exited with return code 0
测试点 #7
Accepted
得分:100
用时:74 ms
内存:31864 KiB

输入文件(07.in

954 9620
1 2 48928
1 3 77602
2 4 9736
2 5 82149
1 6 14100
2 7 73201
7 8 31260
7 9 82801
2 10 69933
6
<131587 bytes omitted>

答案文件(07.ans

184919

用户输出

184919

系统信息

Exited with return code 0
测试点 #8
Accepted
得分:100
用时:75 ms
内存:31992 KiB

输入文件(08.in

946 9136
1 2 3322
1 3 76072
1 4 16527
2 5 9562
5 6 60762
6 7 67224
1 8 88909
7 9 91358
9 10 25363
4 
<124859 bytes omitted>

答案文件(08.ans

191259

用户输出

191259

系统信息

Exited with return code 0
测试点 #9
Accepted
得分:100
用时:75 ms
内存:31944 KiB

输入文件(09.in

963 9814
1 2 14048
2 3 40980
2 4 76354
1 5 32242
5 6 57710
4 7 74690
3 8 696
2 9 93547
5 10 83686
3 
<134310 bytes omitted>

答案文件(09.ans

191404

用户输出

191404

系统信息

Exited with return code 0
测试点 #10
Accepted
得分:100
用时:70 ms
内存:31984 KiB

输入文件(10.in

907 9592
1 2 56498
2 3 39992
1 4 97777
3 5 43535
1 6 60669
3 7 8684
6 8 8342
5 9 3341
5 10 54069
3 1
<131170 bytes omitted>

答案文件(10.ans

159164

用户输出

159164

系统信息

Exited with return code 0
测试点 #11
Accepted
得分:100
用时:73 ms
内存:31952 KiB

输入文件(11.in

961 9738
1 2 77603
1 3 55107
2 4 94838
1 5 86873
2 6 71895
4 7 42417
7 8 18633
3 9 50720
2 10 8124
2
<133328 bytes omitted>

答案文件(11.ans

226759

用户输出

226759

系统信息

Exited with return code 0
测试点 #12
Accepted
得分:100
用时:75 ms
内存:31988 KiB

输入文件(12.in

922 9495
1 2 74386
1 3 46842
1 4 45986
3 5 28221
4 6 813
6 7 9673
5 8 84925
5 9 27070
1 10 28158
6 1
<129894 bytes omitted>

答案文件(12.ans

206120

用户输出

206120

系统信息

Exited with return code 0
测试点 #13
Accepted
得分:100
用时:77 ms
内存:31996 KiB

输入文件(13.in

969 9940
1 2 52898
2 3 66949
1 4 33891
1 5 89883
3 6 58933
1 7 43115
6 8 705
1 9 11964
2 10 27082
7 
<136015 bytes omitted>

答案文件(13.ans

180825

用户输出

180825

系统信息

Exited with return code 0
测试点 #14
Accepted
得分:100
用时:70 ms
内存:31948 KiB

输入文件(14.in

958 9208
1 2 6355
1 3 33442
3 4 5708
1 5 82239
5 6 54649
4 7 90055
1 8 96152
8 9 66805
3 10 2693
9 1
<125934 bytes omitted>

答案文件(14.ans

201075

用户输出

201075

系统信息

Exited with return code 0
测试点 #15
Accepted
得分:100
用时:181 ms
内存:31992 KiB

输入文件(15.in

1978 9706
1 2 78441
1 3 93204
1 4 34169
4 5 68390
4 6 68610
2 7 4971
2 8 48605
8 9 41970
4 10 67572

<143038 bytes omitted>

答案文件(15.ans

235715

用户输出

235715

系统信息

Exited with return code 0
测试点 #16
Accepted
得分:100
用时:189 ms
内存:31992 KiB

输入文件(16.in

1988 9915
1 2 18876
2 3 50319
2 4 23783
3 5 12278
5 6 52624
2 7 94109
6 8 45323
7 9 85178
3 10 40196
<146223 bytes omitted>

答案文件(16.ans

180635

用户输出

180635

系统信息

Exited with return code 0
测试点 #17
Accepted
得分:100
用时:179 ms
内存:31976 KiB

输入文件(17.in

1992 9832
1 2 8550
2 3 74022
2 4 32107
2 5 35012
1 6 63629
4 7 68299
4 8 32176
2 9 52376
7 10 37712

<145210 bytes omitted>

答案文件(17.ans

400566

用户输出

400566

系统信息

Exited with return code 0
测试点 #18
Accepted
得分:100
用时:150 ms
内存:31980 KiB

输入文件(18.in

1904 9599
1 2 38275
1 3 8569
2 4 22406
4 5 52940
5 6 90205
4 7 65298
7 8 98943
5 9 69325
6 10 47027

<141327 bytes omitted>

答案文件(18.ans

553323

用户输出

553323

系统信息

Exited with return code 0
测试点 #19
Accepted
得分:100
用时:148 ms
内存:31940 KiB

输入文件(19.in

1966 9554
1 2 17891
2 3 8060
3 4 6259
1 5 33026
5 6 71923
6 7 60286
6 8 54211
4 9 29160
9 10 31533
4
<141078 bytes omitted>

答案文件(19.ans

893510

用户输出

893510

系统信息

Exited with return code 0
测试点 #20
Accepted
得分:100
用时:152 ms
内存:31984 KiB

输入文件(20.in

1963 9921
1 2 35364
2 3 2654
1 4 37531
1 5 42140
5 6 96240
2 7 28727
6 8 73712
8 9 35997
4 10 96140

<146347 bytes omitted>

答案文件(20.ans

843364

用户输出

843364

系统信息

Exited with return code 0