bzoj 2055 80人環遊地球 上下界費用流

2021-07-29 19:13:34 字數 717 閱讀 7710

這題像上下界網路流一樣,把一條邊拆成三條,其中原圖中的邊權值不變,連向超級源點和匯點的邊權值改為0就可以。然後把邊合併一下。答案為每條邊最小容量*權值+建完圖後最小費用流。

#include#include#include#include#define maxn 405

#define ll long long

using namespace std;

int v[1005];

ll ans=0;

int ss,s,t,inf=1e9;

struct eb[100005];

int fst[maxn],cur[maxn],tot=1;

void insert(int f,int t,int c,int d)

;fst[f]=tot;

b[++tot]=(e);fst[t]=tot;

}struct flow

}} return dis[t]!=inf;

} int maxflow()

}return ans;

}}spfa;

int main()

int x;

for(int i=1;i<=n;i++)

for(int j=i+1;j<=n;j++)

printf("%d",spfa.maxflow());

return 0;

}

BZOJ2055 80人環遊世界

題解 總算a掉了,各種蛋疼。int main for1 i,n for2 j,i 1,n for1 i,n insert i n,t,0,inf,0 insert t,s,0,inf,0 mcf printf d n mincost return0 s是附加源,sss是真正的源,t是真正的匯。這樣構...

bzoj 2055 80人環遊世界

有源匯上下界最小費用可行流。將每個國家拆點。源點向乙個新建節點連一條上界為總人數下界為0費用為0的邊。新建節點向每個國家的入點連一條上界為正無窮下界為0費用為0的邊。每個國家的入點向出點連一條上下界均為該國家訪問人數費用為0的邊。每個國家的出點向匯點連一條上界為正無窮下界為0費用為0的邊。對於國家i...

BZOJ2055 80人環遊世界

上下界最小費用流 限制點訪問量 拆點 i,i 建圖 1.s s m,m 0 2.s i 0,inf 0 i t 0,inf 0 3.i j 0,inf x 4.i i vi,vi 0 然後就是上下界流的常見套路啦 根據 調整 原則 先是每個點點權為di ini outi 然後 0的連源點 0的連匯點...