1
#include
<
cstdio
>
2
#include
<
iostream
>
3
#include
<
cassert
>
4
#include
"
Graph.cpp
"
5
using
namespace
std;
6
using
namespace
TenshiNS;
//
调试不同的例程,只需修改这里就行了^_^
7
inline
in
(
int
&
n)
{ scanf(
"
%d
"
,
&
n);}
8
inline
in
(
double
&
n)
{ scanf(
"
%lf
"
,
&
n);}
9
template
<
class
T
>
10
inline show(T a[],
int
n,
char
bk
=
'
'
)
{
11
for
(
int
i
=
0
; i
<
n; i
++
)
12
cout
<<
a[i]
<<
bk;
13
cout
<<
endl;
14
}
15
template
<
class
T
>
16
inline show(T a,
int
r,
int
l,
char
bk
=
'
'
)
{
17
for
(
int
i
=
0
; i
<
r; i
++
)
{
18
for
(
int
j
=
0
; j
<
l; j
++
)
19
cout
<<
a[i][j]
<<
bk;
20
cout
<<
endl;
21
}
22
cout
<<
endl;
23
}
24
25
26
namespace
bridgeNS
{
27
char
file[]
=
"
bridgeIn.txt
"
;
28
void
test()
{
29
int
i,v,w;
30
g.clear();
31
in
(g.v);
in
(g.e);
32
for
(i
=
0
; i
<
g.e; i
++
)
{
33
in
(v);
in
(w);
34
g.a[v].push_back(w);
35
g.a[w].push_back(v);
36
}
37
printf(
"
Bridge:
"
);
38
bridge();
39
putchar(
'
\n
'
);
40
}
41
}
42
43
namespace
GabowNS
{
44
char
file[]
=
"
gabowIn.txt
"
;
45
void
test()
{
46
int
i,v,w;
47
g.clear();
48
in
(g.v);
in
(g.e);
49
for
(i
=
0
; i
<
g.e; i
++
)
{
50
in
(v);
in
(w);
51
g.a[v].push_back(w);
52
}
53
printf(
"
Strong:
"
);
54
init();
55
show(sc,g.v);
56
}
57
}
58
59
namespace
PrimNS
{
60
char
file[]
=
"
primIn.txt
"
;
61
void
test()
{
62
int
i,v,w;
double
l;
63
in
(g.v);
in
(g.e);
64
g.clear();
65
for
(i
=
0
; i
<
g.e; i
++
)
{
66
in
(v);
in
(w);
in
(l);
67
g.a[v][w]
=
g.a[w][v]
=
l;
68
}
69
mst();
70
printf(
"
parent:
"
); show(st
+
1
,g.v
-
1
);
71
printf(
"
weight:
"
); show(wt
+
1
,g.v
-
1
);
72
}
73
}
74
75
namespace
DijkstraNS
{
76
char
file[]
=
"
DijkstraIn.txt
"
;
77
void
test()
{
78
int
i,v,w,root;
double
l;
79
in
(g.v);
in
(g.e);
in
(root);
80
g.clear();
81
for
(i
=
0
; i
<
g.e; i
++
)
{
82
in
(v);
in
(w);
in
(l);
83
g.a[v][w]
=
l;
84
}
85
//
show(g.a, g.v, g.v,'\t');
86
spt(root);
87
//
printf("ID: 0 1 2 3 4 5\n");
88
printf(
"
parent:
"
); show(st,g.v);
89
printf(
"
weight:
"
); show(wt,g.v);
90
}
91
}
92
93
namespace
FloydNS
{
//
V^3
94
char
file[]
=
"
FloydIn.txt
"
;
95
void
test()
{
96
int
i,v,w;
double
l;
97
in
(g.v);
in
(g.e);
98
g.clear();
99
for
(i
=
0
; i
<
g.e; i
++
)
{
100
in
(v);
in
(w);
in
(l);
101
g.a[v][w]
=
l;
102
}
103
//
show(g.a, g.v, g.v,'\t');
104
floyd();
105
//
printf("ID: 0 1 2 3 4 5\n");
106
printf(
"
distance matrix:\n
"
);
107
show(d,g.v,g.v);
108
printf(
"
path matrix:\n
"
);
109
show(p,g.v,g.v);
110
}
111
}
112
113
namespace
TenshiNS
{
114
char
file[]
=
"
tenshiIn.txt
"
;
115
void
test()
{
116
int
i,v,w,e;
117
in
(xv);
in
(yv);
in
(e);
118
init();
119
for
(i
=
0
; i
<
e; i
++
)
{
120
in
(v);
in
(w);
121
g[v][w]
=
1
;
122
}
123
printf(
"
匹配数: %d\n
"
, tenshi());
124
printf(
"
X匹配项:
"
);
125
show(xm,xv);
126
printf(
"
\nY匹配项:
"
);
127
show(ym,yv);
128
putchar(
'
\n
'
);
129
}
130
}
131
132
void
main()
{
133
freopen(file,
"
r
"
,stdin);
134
while
(
!
feof(stdin)) test();
135
}
136
137
posted on 2006-07-07 17:53
踏雪赤兔 阅读(686)
评论(0) 编辑 收藏 引用 所属分类:
零件仓库 、
速查手册