WHUGCC
C++博客
|
首頁
|
發新隨筆
|
發新文章
|
聯系
|
聚合
|
管理
隨筆:3 文章:1 評論:1 引用:0
http://acm.hit.edu.cn/ojs/show.php?Proid=2543&Contestid=0
一個最小費用,最大流,待解決。
發表于 2007-09-17 18:07
WHUGCC
閱讀(868)
評論(1)
編輯
收藏
引用
評論
#
re: http://acm.hit.edu.cn/ojs/show.php?Proid=2543&Contestid=0
1
/**/
/*
************************************************************************
2
Author: WHU_GCC
3
Created Time: 2007-9-17 17:52:25
4
File Name: hit2543.cpp
5
Description:
6
***********************************************************************
*/
7
#include
<
iostream
>
8
using
namespace
std;
9
#define
out(x) (cout<<#x<<": "<<x<<endl)
10
const
int
maxint
=
0xFFFFFFF
;
11
typedef
long
long
int64;
12
const
int64 maxint64
=
0xFFFFFFFFFFFFFFFLL;
13
template
<
class
T
>
void
show(T a,
int
n)
{
for
(
int
i
=
0
; i
<
n;
++
i) cout
<<
a[i]
<<
'
'
; cout
<<
endl;}
14
template
<
class
T
>
void
show(T a,
int
r,
int
l)
{
for
(
int
i
=
0
; i
<
r;
++
i)show(a[i],l);cout
<<
endl;}
15
const
int
maxn
=
1100
;
16
struct
_adj
17
{
18
int
v, c, f, w;
19
_adj
*
next,
*
dup;
20
int
getw()
21
{
22
if
(f
<
-
c)
23
return
-
w;
24
if
(f
<
c)
25
return
0
;
26
return
w;
27
}
28
int
getc()
29
{
30
if
(f
<
-
c)
31
return
-
c
-
f;
32
if
(f
<
c)
33
return
c
-
f;
34
return
maxint;
35
}
36
}
*
adj[maxn],
*
st[maxn];
37
int
stt, trm, n, c, p;
38
int
d[maxn];
39
int
cost;
40
int
bell()
41
{
42
int
bfs[maxn];
43
bool
hash[maxn];
44
fill (hash
+
1
, hash
+
1
+
n,
0
);
45
fill (d
+
1
, d
+
1
+
n, maxint);
46
_adj
*
pt;
47
hash[stt]
=
1
;
48
d[stt]
=
0
;
49
bfs[
0
]
=
stt;
50
int
v;
51
for
(
int
s
=
0
, t
=
1
; s
!=
t;s
=
(s
+
1
)
%
n, hash[v]
=
0
)
52
for
(pt
=
adj[v
=
bfs[s]]; pt; pt
=
pt
->
next)
53
if
(d[v]
+
pt
->
getw()
<
d[pt
->
v])
54
{
55
//
out(pt->getw());
56
//
out(v);
57
//
out(pt->v);
58
d[pt
->
v]
=
d[v]
+
pt
->
getw();
59
//
out(d[pt->v]);
60
st[pt
->
v]
=
pt;
61
if
(hash[pt
->
v]
==
0
)
62
{
63
hash[pt
->
v]
=
1
;
64
bfs[t
++
]
=
pt
->
v;
65
t
%=
n;
66
}
67
//
system ("pause");
68
}
69
//
out(1);
70
if
(d[trm]
==
maxint)
71
return
0
;
72
int
ans
=
maxint;
73
for
(v
=
trm; v
!=
stt; v
=
st[v]
->
dup
->
v)
74
{
75
ans
<?=
st[v]
->
getc();
76
}
77
//
out(ans);
78
return
ans;
79
}
80
81
void
insert(
int
u,
int
v,
int
c,
int
w)
82
{
83
//
printf ("%d %d %d %d\n", u, v, c, w);
84
_adj
*
pt;
85
pt
=
new
_adj;
86
pt
->
v
=
v; pt
->
c
=
c; pt
->
f
=
0
; pt
->
w
=
w; pt
->
next
=
adj[u];
87
adj[u]
=
pt;
88
pt
->
dup
=
new
_adj;
89
_adj
*
qt
=
pt
->
dup;
90
qt
->
v
=
u; qt
->
c
=
c; qt
->
f
=
0
; qt
->
w
=
w; qt
->
next
=
adj[v]; qt
->
dup
=
pt;
91
adj[v]
=
qt;
92
}
93
int
mincostmaxflow ()
94
{
95
int
flow
=
0
;
96
cost
=
0
;
97
int
f;
98
while
((f
=
bell()))
99
{
100
//
out(f);
101
if
(f
==
maxint
||
f
*
(p
+
d[trm])
>=
c)
102
{
103
return
flow
+
c
/
(p
+
::d[trm]);
104
}
105
flow
+=
f;
106
c
-=
f
*
p
+
::d[trm]
*
f;
107
for
(
int
x
=
trm; x
!=
stt; x
=
st[x]
->
dup
->
v)
108
{
109
st[x]
->
f
+=
f;
110
st[x]
->
dup
->
f
-=
f;
111
}
112
}
113
return
flow;
114
}
115
116
int
work ()
117
{
118
return
mincostmaxflow ();
119
}
120
121
void
init ()
122
{
123
int
n, m, c, p;
124
scanf (
"
%d %d %d %d
"
,
&
n,
&
m,
&
c,
&
p);
125
memset (adj,
0
,
sizeof
(adj));
126
while
(m
--
)
127
{
128
int
u, v, cc, w;
129
scanf (
"
%d %d %d %d
"
,
&
u,
&
v,
&
cc,
&
w);
130
++
u;
131
++
v;
132
insert (u, v, cc, w);
133
}
134
::n
=
n;
135
::c
=
c;
136
::p
=
p;
137
stt
=
1
;
138
trm
=
2
;
139
}
140
141
int
main()
142
{
143
int
T;
144
scanf (
"
%d
"
,
&
T);
145
while
(T
--
)
146
{
147
init ();
148
printf (
"
%d\n
"
, work ());
149
}
150
return
0
;
151
}
152
153
WHUGCC
評論于 2007-09-17 21:00
回復
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
<
2025年7月
>
日
一
二
三
四
五
六
29
30
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
1
2
3
4
5
6
7
8
9
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(1)
給我留言
查看公開留言
查看私人留言
隨筆檔案
2007年9月 (3)
文章檔案
2007年9月 (1)
搜索
最新評論
1.?re: http://acm.hit.edu.cn/ojs/show.php?Proid=2543&Contestid=0
評論內容較長,點擊標題查看
--WHUGCC
閱讀排行榜
1.?給出一個沒有偶圈的簡單無向圖,求兩個頂點間路徑的數目。(879)
2.?http://acm.hit.edu.cn/ojs/show.php?Proid=2543&Contestid=0(868)
3.?URAL JUDGE ID 57735TC(231)
評論排行榜
1.?http://acm.hit.edu.cn/ojs/show.php?Proid=2543&Contestid=0(1)
2.?給出一個沒有偶圈的簡單無向圖,求兩個頂點間路徑的數目。(0)
3.?URAL JUDGE ID 57735TC(0)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 WHUGCC
成人午夜精品无码区久久
|
久久精品麻豆日日躁夜夜躁
|
久久综合亚洲鲁鲁五月天
|
久久久久国产精品熟女影院
|
久久精品国产秦先生
|
久久午夜免费视频
|
国产香蕉97碰碰久久人人
|
久久婷婷色综合一区二区
|
99久久国产主播综合精品
|
亚洲AV日韩精品久久久久
|
国产午夜电影久久
|
国产精品久久永久免费
|
久久综合九色综合网站
|
老司机午夜网站国内精品久久久久久久久
|
久久精品午夜一区二区福利
|
国内精品久久久久久久coent
|
伊人久久大香线蕉亚洲五月天
|
久久久久一本毛久久久
|
久久九九青青国产精品
|
亚洲AV日韩精品久久久久久久
|
欧美久久天天综合香蕉伊
|
人人狠狠综合久久亚洲婷婷
|
久久亚洲AV成人无码国产
|
久久精品人人做人人爽电影
|
色婷婷久久久SWAG精品
|
欧美国产精品久久高清
|
久久国产成人午夜aⅴ影院
|
国产成人久久精品二区三区
|
99久久成人18免费网站
|
国内精品久久久久久野外
|
亚洲国产精品成人久久
|
少妇精品久久久一区二区三区
|
亚洲午夜久久久久久久久电影网
|
97精品伊人久久大香线蕉
|
怡红院日本一道日本久久
|
伊人久久综合热线大杳蕉下载
|
国产精品99久久精品
|
国产精品gz久久久
|
久久精品成人
|
久久精品国产亚洲AV不卡
|
亚洲婷婷国产精品电影人久久
|
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153