Age of Moyu
题解
标程的set+bfs貌似有漏洞。
1
2
3
4
5
6
7
5
1
2
3
4
1
1
这个数据就可以hack掉了。
所以我果断copy了dls队伍的代码。(用边做)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include
#include
#include
#include
#include
#include
using
inline
return
}
inline
char
while
ch = inputchar();
ret = ch - '0'
ch = inputchar();
while
{
ret = ret * 10
ch = inputchar();
}
}
const
int
class
{
public
int
}e[MAXM * 2
int
int
deque
void
int
// scanf("%d%d%d", &u, &v, &c);
inputnum(u);
inputnum(v);
inputnum(c);
e[++en].to = v;
e[en].c = c;
e[en].next = head[u];
head[u] = en;
e[++en].to = u;
e[en].c = c;
e[en].next = head[v];
head[v] = en;
}
bool
if
return
memset
en = 1
for
insert();
memset
for
dis[i / 2
while
{
int
q.pop_front();
for
if
{
if
dis[i / 2
}
else
{
if
dis[i / 2
}
for
if
{
if
dis[i / 2
}
else
{
if
dis[i / 2
}
}
int
for
if
ans = dis[i / 2
if
ans = -1
printf
return
}
int
#ifdef
freopen("a.in"
#endif
while
return
}
时间卡的非常紧。优化了很多终于2.4s过了。
$$O(n^2)$$
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include
using
#define
#define
#define
#define
typedef
typedef
const
//head
void
char
for
for
}
const
int
int
struct
int
}G[maxn
杭电多校Age_of_Moyu
https://www.cheasim.com/acm/2018/08/19/%E6%9D%AD%E7%94%B5%E5%A4%9A%E6%A0%A1Age-of-Moyu.html
作者
CheaSim
发布于
2018-08-19
更新于
2018-08-19
许可协议
#[hdoj](/tags/hdoj/)