QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#599358#2002. Raceiframe#0 1ms6028kbC++171.2kb2024-09-29 03:45:152024-09-29 03:45:15

Judging History

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

  • [2024-09-29 03:45:15]
  • 评测
  • 测评结果:0
  • 用时:1ms
  • 内存:6028kb
  • [2024-09-29 03:45:15]
  • 提交

answer

#include "race.h"

#include <vector>
#include <array>

using ll = long long;

std::vector<std::array<int, 2>> adj[1000];

int depth[1000];
ll dist[1000];

void dfs(int i, int p){
	for(const auto &[x, d] : adj[i]) if(x != p)
		depth[x] = depth[i]+1, dist[x] = dist[i]+d,
			dfs(x, i);
}

int subpath[1000][101];

void dfs2(int i, int p){
	for(const auto &[x, d] : adj[i]) if(x != p){
		dfs2(x, i);

		for(int j=0; j+d<101; ++j)
			subpath[i][j+d] = std::min(subpath[i][j+d],
					subpath[x][j] + 1);
	}
}

int best_path(int n, int k, int h[][2], int l[]){
	for(int i=0; i<n-1; ++i){
		adj[h[i][0]].push_back({h[i][1], l[i]});
		adj[h[i][1]].push_back({h[i][0], l[i]});
	}

	int best = n;

	if(k <= 100){
		for(int i=0; i<n; ++i)
			for(int j=1; j<101; ++j)
				subpath[i][j] = n;

		dfs2(0, -1);

		for(int i=0; i<n; ++i)
			for(int j=0; j+j<=k; ++j)
				best = std::min(best,
						subpath[i][j] + subpath[i][k-j]);
	}else{
		for(int i=0; i<n; ++i){
			dist[i] = 0, depth[i] = 0;
			dfs(i, -1);

			for(int j=0; j<n; ++j) if(dist[j] == k)
				best = std::min(best, depth[j]);
		}
	}

	return best == n ? -1 : best;
}

详细

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 0
Wrong Answer
time: 1ms
memory: 6028kb

input:

100 50
0 1 1
1 2 2
2 3 2
3 4 1
4 5 2
5 6 1
6 7 1
7 8 1
8 9 1
9 10 2
10 11 2
11 12 2
12 13 1
13 14 1
14 15 1
15 16 2
16 17 1
17 18 2
18 19 1
19 20 1
20 21 1
21 22 2
22 23 2
23 24 2
24 25 2
25 26 1
26 27 2
27 28 2
28 29 2
29 30 2
30 31 2
31 32 1
32 33 1
33 34 2
34 35 2
35 36 1
36 37 1
37 38 1
38 39 1
...

output:

Incorrect. Returned 27, Expected 30.

Subtask #2:

score: 0
Skipped

Dependency #1:

0%

Subtask #3:

score: 0
Runtime Error

Test #39:

score: 0
Runtime Error

input:

100000 100
1 0 1
2 1 10
3 1 1
4 3 5
5 3 6
6 5 6
7 3 10
8 5 9
9 8 7
10 9 9
11 6 7
12 6 3
13 10 10
14 9 1
15 14 7
16 15 5
17 10 1
18 14 9
19 12 8
20 18 10
21 10 9
22 12 7
23 14 9
24 15 5
25 15 2
26 20 4
27 19 10
28 17 8
29 16 8
30 24 10
31 17 2
32 28 7
33 27 8
34 21 4
35 28 7
36 22 4
37 18 6
38 27 6
3...

output:

Unauthorized output

Subtask #4:

score: 0
Skipped

Dependency #1:

0%