網路流24題 數字梯形問題 費用流

2022-03-25 21:28:18 字數 2103 閱讀 5527

洛谷傳送門 loj傳送門

勞資把$spfa$裡$cost$陣列初始化從$-1$改成$-inf$就特麼$a$了,梯形裡有負數,浪費了半個多小時,心態都崩了

問題難度好像是反過來的

源點向第一排的點都流量為$1$,費用為$0$的邊,最後一排的點向匯點連流量為$1$,費用為$0$的邊

第三問點點之間流量$inf$,費用為指向的點的權值

第二問沒啥好說的,點點之間的邊流量改成$1$就行了

因為最後一排可能有很多點,所以最後一排的點向匯點的流量改成$inf$

第一問拆點

乙個點不能被走$2$次,在拆開點之間連流量為$1$,費用為它權值的邊

一條邊不能被走$2$次,某點的出點向它能走的點的入點連流量為$1$,費用為$0$的邊

然後瞎**跑最大費用最大流就行了

【暴躁!!】

1 #include 2 #include 3 #include 4

#define l1 55

5#define n1 1610

6#define m1 40010

7#define ll long long

8#define dd double

9#define inf 0x3f3f3f3f

10using

namespace

std;

1112

intgint()

1316

while(c>='

0'&&c<='9')

17return ret*fh;18}

19struct

edge

26}e,e;

27int

k,n,m,cnt,s,t;

28int a[n1],que[m1<<1

],hd,tl,cost[n1],flow[n1],use[n1],id[n1];

29int

spfa()

3048

}49 use[x]=0;50

}51return cost[t]!=-inf;52}

53int

ek()

5464}65

return

tcost;66}

6768

intmp[l1][l1],idd[l1][l1];

69int check(int x,int

y)72

73namespace

s183

if(check(i+1,j+1))84}

85for(i=1;i<=m;i++) e.ae(s,i,1,0), e.ae(i,s,0,0

);86

for(i=1;i<=n+m-1;i++) e.ae(idd[n][i]+cnt,t,1,0), e.ae(t,idd[n][i]+cnt,0,0

);87 printf("

%d\n

",ek());88}

89};

9091

namespace

s2102

for(i=1;i<=m;i++) e.ae(s,i,1,mp[1][i]), e.ae(i,s,0,-mp[1

][i]);

103for(i=1;i<=n+m-1;i++) e.ae(idd[n][i],t,inf,0), e.ae(t,idd[n][i],0,0

);104 printf("

%d\n

",ek());

105}

106};

107108

namespace

s3118

if(check(i+1,j+1))

119}

120for(i=1;i<=m;i++) e.ae(s,i,1,0), e.ae(i,s,0,0

);121

for(i=1;i<=n+m-1;i++) e.ae(idd[n][i]+cnt,t,inf,0), e.ae(t,idd[n][i]+cnt,0,0

);122 printf("

%d\n

",ek());

123}

124};

125126

intmain()

127

網路流24題 數字梯形問題

網路流24題大多需要spj,所以需要乙個有spj的oj,本系列 均在www.oj.swust.edu.cn測試通過 這絕對是我見過最不要臉的網路流了,一道題竟然赤裸裸的讓你建三個圖,算了,還是耐著性子把它做完了。我們首先要想明白的問題就是如果兩條路徑沒有任何公共點,那麼這兩條路徑一定不會相交,因為這...

網路流24題 數字梯形問題

題面 傳送門思路 三合一題目 但是實際上做好了第乙個就沒有別的問題了 第一問 把每個數字拆成兩個點,中間連一條容量為1,費用為0的邊,以此達到限制每個點流量的目的 然後其餘的不多說,源點到第一層,每一層向下連,最後一層到匯點 第二問 第一問中每個點內部的那條邊容量改成inf就好 第三問 直接dp算了...

網路流 24 題 數字梯形

題目描述 給定乙個由 n n n 行數字組成的數字梯形如下圖所示。梯形的第一行有 m m m 個數字。從梯形的頂部的 m m m 個數字開始,在每個數字處可以沿左下或右下方向移動,形成一條從梯形的頂至底的路徑。分別遵守以下規則 從梯形的頂至底的 m m m 條路徑互不相交 從梯形的頂至底的 m m ...