博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ3118 : Orz the MST
阅读量:7070 次
发布时间:2019-06-28

本文共 733 字,大约阅读时间需要 2 分钟。

对于树边显然只需要减少权值,对于非树边显然只需要增加权值

设i不为树边,j为树边

X[i]:i增加量

X[j]:j减少量

C[i]:修改1单位i的代价

对于每条非树边i(u,v),在树上u到v路径上的所有边j都需要满足

$W_i+X_i\geq W_j-X_j$

$X_i+X_j\geq W_j-W_i$

最后我们要最小化$\sum C_iX_i$

将矩阵转置,得到对偶问题,用线性规划单纯形法求解

 

#include
#define rep(i,l,n) for(int i=l;i<=n;i++)const int N=1001,M=4000,inf=~0U>>2;int n,m,a[N][M],nxt[M],s,t,c,nn;int g[N],Nxt[N],v[N],ed,pre[N],id[N][N],head,tail,q[N];inline void cal(int l,int e){ a[l][e]=-1;t=M-1; rep(i,0,m)if(a[l][i])nxt[t]=i,t=i;nxt[t]=-1; rep(i,0,n)if(i!=l&&(t=a[i][e])){ a[i][e]=0; for(int j=nxt[M-1];~j;j=nxt[j])a[i][j]+=a[l][j]*t; }}int work(){ for(;;){int min=inf,l=0,e=0; rep(i,1,m)if(a[0][i]>0){e=i;break;} if(!e)return a[0][0]; rep(i,1,n)if(a[i][e]<0&&a[i][0]

  

 

转载地址:http://hgqll.baihongyu.com/

你可能感兴趣的文章
一起学Android之Http访问
查看>>
mybaties+mysql:插入数据,返回自增长的id
查看>>
azkaben任务调度器
查看>>
L102
查看>>
New Concept English Two 7
查看>>
极致精简的webservice例子
查看>>
Django的cookie学习
查看>>
HTML5之美二 --- 转载
查看>>
python全栈开发 * 11知识点汇总 * 1806011
查看>>
@override报错
查看>>
POJ3068:"Shortest" pair of paths——题解
查看>>
js判断当前时间前几天和格式校验
查看>>
Linux (Ubuntu)安装ssh
查看>>
详细解释:nginx中ChsHttpIndexModule模块配置及各个参数含义
查看>>
20165306 第四周学习任务
查看>>
手把手教你用动软.NET代码生成器实例教程
查看>>
栈分配的速度快于堆
查看>>
[转] 使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制
查看>>
CF-Pasha and Tea(贪心6)
查看>>
ASCII_01
查看>>