bzoj1937
这道题没弄明白
初始模型很好想,是用到了最小生成树的性质
加入非树边后树上形成的环,非树边一定大于等于任意树边
然后考虑树边一定是缩小,非树边一定是增大
有di+wi>=dj-wj wi+wj>=dj-di(j是加入i形成的环上的边)
然后不知道为什么求∑wi最小就是跑最大费用可行流
求神犇指教
type node=record
po,next,cost,flow:longint;
end; var e:array[..] of node;
v,f:array[..] of boolean;
a:array[..,..] of longint;
d,pre,cur,w,p:array[..] of longint;
q:array[..] of longint;
x,y,len,i,j,n,m,t,k:longint; procedure add(x,y,f,c:longint);
begin
inc(len);
e[len].po:=y;
e[len].next:=p[x];
e[len].cost:=c;
e[len].flow:=f;
p[x]:=len;
end; procedure build(x,y,f,c:longint);
begin
add(x,y,f,c);
add(y,x,,-c);
end; function dfs(x:longint):boolean;
var i:longint;
begin
f[x]:=true;
if x=j then
begin
q[]:=-;
exit;
end;
for i:= to n do
if not f[i] and v[a[x,i]] then
begin
inc(t);
q[t]:=a[x,i];
dfs(i);
if q[]=- then exit;
q[t]:=;
dec(t);
end;
end; function spfa:boolean;
var f,r,y,i,j,x:longint;
begin
f:=;
r:=;
q[]:=;
d[]:=;
for i:= to t do
d[i]:=-;
fillchar(v,sizeof(v),false);
while f<=r do
begin
x:=q[f];
v[x]:=false;
i:=p[x];
while i<>- do
begin
y:=e[i].po;
if e[i].flow> then
if d[y]<d[x]+e[i].cost then
begin
d[y]:=d[x]+e[i].cost;
pre[y]:=x;
cur[y]:=i;
if not v[y] then
begin
v[y]:=true;
inc(r);
q[r]:=y;
end;
end;
i:=e[i].next;
end;
inc(f);
end;
if d[t]>= then exit(true) else exit(false);
end; function maxcost:longint;
var i,j:longint;
begin
maxcost:=;
while spfa do
begin
i:=t;
while i<> do
begin
j:=cur[i];
dec(e[j].flow);
inc(e[j xor ].flow);
i:=pre[i];
end;
maxcost:=maxcost+d[t];
end;
end; begin
len:=-;
fillchar(p,sizeof(p),);
readln(n,m);
for i:= to m do
begin
readln(x,y,w[i]);
a[x,y]:=i;
a[y,x]:=i;
end;
for i:= to n- do
begin
readln(x,y);
k:=a[x,y];
v[k]:=true;
build(,k,,);
end;
for i:= to n do
for j:=i+ to n do
if (a[i,j]>) and not v[a[i,j]] then
begin
build(a[i,j],m+,,);
fillchar(f,sizeof(f),false);
t:=; q[]:=;
dfs(i);
for k:= to t do
if w[q[k]]>w[a[i,j]] then build(q[k],a[i,j],,w[q[k]]-w[a[i,j]]);
end;
t:=m+;
writeln(maxcost);
end.
bzoj1937的更多相关文章
- 【bzoj1937】 Shoi2004—Mst 最小生成树
http://www.lydsy.com/JudgeOnline/problem.php?id=1937 (题目链接) 题意 一个无向图,给出一个生成树,可以修改每条边的权值,问最小修改多少权值使得给 ...
- [BZOJ1937][SHOI2004]Mst最小生成树(KM算法,最大费用流)
1937: [Shoi2004]Mst 最小生成树 Time Limit: 3 Sec Memory Limit: 64 MBSubmit: 802 Solved: 344[Submit][Sta ...
- 【BZOJ1937】[Shoi2004]Mst 最小生成树 KM算法(线性规划)
[BZOJ1937][Shoi2004]Mst 最小生成树 Description Input 第一行为N.M,其中 表示顶点的数目, 表示边的数目.顶点的编号为1.2.3.…….N-1.N.接下来的 ...
- BZOJ1937 [Shoi2004]Mst 最小生成树
首先由贪心的想法知道,树边只减不加,非树边只加不减,令$w_i$表示i号边原来的边权,$d_i$表示i号边的改变量 对于一条非树边$j$连接着两个点$x$.$y$,则对于$xy$这条路径上的所有树边$ ...
- 【KM】BZOJ1937 [Shoi2004]Mst 最小生成树
这道题拖了好久因为懒,结果1A了,惊讶∑( 口 || [题目大意] 给定一张n个顶点m条边的有权无向图.现要修改各边边权,使得给出n-1条边是这张图的最小生成树,代价为变化量的绝对值.求最小代价之和. ...
- APIO2015题解
分组赛讲课讲了APIO2015的题,于是回去就做完了 稍微写一点题解吧 bzoj4069 逐位处理的简单题,然后就是bool型dp 然后a=1 的时候可以把一位状态干掉 当一维状态单调且是bool型d ...
- bzoj网络流
近期看了一些bzoj的网络流,深感智商不够.不过对于网络流又有了进一步的理解. 还是mark一下吧. 献上几篇论文:1)<最小割模型在信息学竞赛中的应用> 2)<浅析一类最小割问题& ...
- AHOI2018训练日程(3.10~4.12)
(总计:共90题) 3.10~3.16:17题 3.17~3.23:6题 3.24~3.30:17题 3.31~4.6:21题 4.7~4.12:29题 ZJOI&&FJOI(6题) ...
随机推荐
- wordpress在Linux nginx下权限设置
1.wordpress 权限对安装和使用效果的影响很大:权限错误将影响theme的安装:不能安装theme或者修改theme或删除theme. 相关设置: chmod 755 wordpress f ...
- c# 判断点是否在区域内 点在区域内 在多边形内 判断
方法一 算法 : public int isLeft(Point P0, Point P1,Point P2) { int abc= ((P1.X - P0.X) ...
- fedora 取消自动升级
fedora启动时经常CPU使用很高,看下进程原来是yumBackend.这是个yum的自动更新进程 只要关闭自动更新就可以了 gsettings set org.gnome.settings-dae ...
- Java实现MySQL在线管理
问题: 1.如何实现在线创建MySQL数据库.表: 2.如何实现在线执行sql语句? 思路: 1.可以通过java.sql.Statement类的executeUpdate(String sql)方法 ...
- Xubuntu下Mentohust认证(校园网用户)
对于路由器上网到用户来说,自动分配IP上网。 对于校园网用户,首先下载mentohust_0.3.4-1_i386.deb,双击安装程序 然后在命令窗口中输入sudo -s 密码:user来获得roo ...
- (转)《深入理解java虚拟机》学习笔记8——Tomcat类加载器体系结构
Tomcat 等主流Web服务器为了实现下面的基本功能,都实现了不止一个自定义的类加载器: (1).部署在同一个服务器上的两个web应用程序所使用的java类库可以相互隔离. (2).部署在同一个服务 ...
- Java学习之路:2、Mysql 链接与查询
1.事实上我发现有了php的功力在里面,学习java起来还是不是很费劲,只是java就没有面向过程这一说 package second; import java.sql.*;//导入 public c ...
- 【IOS】利用ASIHTTPRequest 实现一个简单的登陆验证
http://blog.csdn.net/toss156/article/details/7638529
- php数组内容分页的例子(转)
php数组内容分页代码 时间:2016-03-04 23:46:34来源:网络 导读:php数组内容分页代码,当前页如果大于总页数,当前页为最后一页,分页显示时,应该从多少条信息开始读取数据. p ...
- 1003: [ZJOI2006]物流运输trans - BZOJ
Description 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球.这些星球通过 ...