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
狠狠狠色丁香婷婷综合久久俺
|
久久久久久久免费视频
|
久久久久高潮毛片免费全部播放
|
久久久久久国产精品免费无码
|
国产精品18久久久久久vr
|
国内精品久久久久久中文字幕
|
日本高清无卡码一区二区久久
|
亚洲精品国产美女久久久
|
精品久久久久久国产免费了
|
2021国内久久精品
|
国产精品久久久久天天影视
|
久久笫一福利免费导航
|
久久久无码精品亚洲日韩蜜臀浪潮
|
国产精品一区二区久久精品涩爱
|
国产高清国内精品福利99久久
|
久久免费观看视频
|
成人久久精品一区二区三区
|
亚洲人成无码网站久久99热国产
|
久久精品a亚洲国产v高清不卡
|
久久国产精品二国产精品
|
亚洲AV日韩AV天堂久久
|
久久影院亚洲一区
|
欧美777精品久久久久网
|
精品国产乱码久久久久久人妻
|
武侠古典久久婷婷狼人伊人
|
久久中文娱乐网
|
午夜天堂av天堂久久久
|
亚洲婷婷国产精品电影人久久
|
一本大道久久a久久精品综合
|
久久久精品人妻一区二区三区蜜桃
|
中文精品久久久久国产网址
|
91久久精品电影
|
国产成人无码久久久精品一
|
久久久久久伊人高潮影院
|
久久av免费天堂小草播放
|
久久青青草原综合伊人
|
久久九九青青国产精品
|
麻豆精品久久精品色综合
|
久久综合久久综合九色
|
99久久免费国产特黄
|
91精品国产91久久综合
|
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