WHUGCC
C++博客
|
首頁
|
發新隨筆
|
發新文章
|
聯系
|
聚合
|
管理
隨筆:3 文章:1 評論:1 引用:0
http://acm.hit.edu.cn/ojs/show.php?Proid=2543&Contestid=0
一個最小費用,最大流,待解決。
發表于 2007-09-17 18:07
WHUGCC
閱讀(864)
評論(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年5月
>
日
一
二
三
四
五
六
27
28
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
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(1)
給我留言
查看公開留言
查看私人留言
隨筆檔案
2007年9月 (3)
文章檔案
2007年9月 (1)
搜索
最新評論
1.?re: http://acm.hit.edu.cn/ojs/show.php?Proid=2543&Contestid=0
評論內容較長,點擊標題查看
--WHUGCC
閱讀排行榜
1.?給出一個沒有偶圈的簡單無向圖,求兩個頂點間路徑的數目。(871)
2.?http://acm.hit.edu.cn/ojs/show.php?Proid=2543&Contestid=0(864)
3.?URAL JUDGE ID 57735TC(228)
評論排行榜
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
精品久久久久久无码专区不卡
|
狠狠色丁香久久婷婷综合_中
|
亚洲v国产v天堂a无码久久
|
精品国产一区二区三区久久久狼
|
色综合久久88色综合天天
|
91精品国产91久久久久久
|
久久国产精品久久久
|
亚洲狠狠综合久久
|
国产视频久久
|
要久久爱在线免费观看
|
怡红院日本一道日本久久
|
AAA级久久久精品无码区
|
国产精品欧美久久久久天天影视
|
久久亚洲欧美日本精品
|
国产日韩久久久精品影院首页
|
精品久久久无码中文字幕
|
色悠久久久久久久综合网
|
成人久久免费网站
|
久久99国产综合精品免费
|
狠狠色丁香久久婷婷综
|
久久久久99精品成人片
|
亚洲午夜无码AV毛片久久
|
人妻无码久久一区二区三区免费
|
久久久久人妻一区二区三区vr
|
久久r热这里有精品视频
|
国产精品99久久久久久猫咪
|
久久人妻少妇嫩草AV蜜桃
|
久久精品中文字幕一区
|
国产91久久精品一区二区
|
久久久受www免费人成
|
伊人久久大香线蕉AV色婷婷色
|
精品久久久久久久无码
|
9999国产精品欧美久久久久久
|
亚洲伊人久久综合影院
|
国产成人久久激情91
|
无码国内精品久久人妻麻豆按摩
|
婷婷综合久久中文字幕蜜桃三电影
|
91麻精品国产91久久久久
|
久久婷婷成人综合色综合
|
青青久久精品国产免费看
|
精品综合久久久久久97超人
|