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
久久精品无码专区免费
|
人人狠狠综合88综合久久
|
思思久久好好热精品国产
|
久久国产亚洲精品
|
色欲久久久天天天综合网精品
|
亚洲国产成人久久一区WWW
|
久久婷婷五月综合成人D啪
|
无码人妻精品一区二区三区久久
|
综合人妻久久一区二区精品
|
久久综合给久久狠狠97色
|
精品国产乱码久久久久久浪潮
|
久久亚洲国产最新网站
|
7国产欧美日韩综合天堂中文久久久久
|
精品人妻伦一二三区久久
|
性高湖久久久久久久久AAAAA
|
人妻少妇久久中文字幕
|
久久丝袜精品中文字幕
|
99久久伊人精品综合观看
|
无码日韩人妻精品久久蜜桃
|
亚洲国产成人精品女人久久久
|
久久中文字幕一区二区
|
久久久久久久亚洲Av无码
|
久久久久久免费视频
|
观看 国产综合久久久久鬼色 欧美 亚洲 一区二区
|
久久久久久免费一区二区三区
|
尹人香蕉久久99天天拍
|
国内精品久久久久久久涩爱
|
久久99精品国产99久久6男男
|
亚洲AV无一区二区三区久久
|
国内精品伊人久久久久妇
|
久久国产成人亚洲精品影院
|
青青草国产成人久久91网
|
aaa级精品久久久国产片
|
嫩草伊人久久精品少妇AV
|
亚洲午夜久久久久妓女影院
|
久久久久久久久久久精品尤物
|
尹人香蕉久久99天天拍
|
久久夜色精品国产噜噜亚洲a
|
久久亚洲熟女cc98cm
|
99久久夜色精品国产网站
|
无码人妻久久一区二区三区免费丨
|
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