hdu 1733 分層網路流

2022-06-02 11:21:07 字數 2736 閱讀 5597

題目大意:有乙個類似於迷宮搜尋的圖,『.』代表的是無人的路,'x'代表有人的點,'#'代表此點不可通過,'@'代表門口。每個位置每一秒鐘只能站乙個人,每個位置到上下左右點的時間為1,問你所有人能不能出去,能出去輸出所有人都出去的最小時間,否則輸出-1.

a: 增加源點src,和匯點dest,然後根據每個時間點建出分層圖,每個時間對應一層,對於每層圖的構造如下

b:給每個格仔標 上號xi, 由於每個格仔一次只能佔一人,所以把每個格仔分為兩個點xa,xb,連上容量為1的有向邊,對於格仔為『x』的,(如果為第0層的話)在源點src與xa 之間連一條容量為1的有向邊,對於格仔為'@'的點,在xb與匯點dest連上容量為1的有向邊,對於每個格仔,(除『#』外),在xb與其上下左右及其本身 的對應下一層圖的xa連上容量為1 的一條有向邊

c:具體操作並不是一下子建出分層圖,由於時間是未知的,所以列舉時間,做最大流,當最大流小於人數時,時間加一併在原圖上增加一層,繼續求最大流,直到最大流大於等於人數,這時的時間就是答案

原理懂了,**也懂了,真自己敲估計還是很難敲出來,等專題訓練吧

1

/*hdu_1733 escape*/2

/*分層圖網路流+列舉時間*/3

/*ac**:171ms

*/4 #include 5 #include 6 #include 7 #include 8

#define maxn 20005

9#define lim 75

10#define inf (1<<30)

11#define max(a,b) (a>b?a:b)

12#define min(a,b) (a13

using

namespace

std;

14struct

node

1519

node(){}

20};

21struct

edge

22e[2000000

];25

inthead[maxn],ecnt;

26int

gap[maxn],cur[maxn],dis[maxn],pre[maxn];

27int

n,m,scr,sink,vn,ti,sum,now;

28int

ans;

29int dir[5][2]=;

30char map[20][20

];31 node q[200000

];32

inthead,tail;

33bool vis[20][20

];34

void insert(int u,int v,int

w)35

47bool

bfs(node s)

4868}69

}70return

false;71

}72bool

ok()

7389}90

}91}92

return

ok;93}94

void

init()

95112

}113

}114 now=(m*n);

115 vn+=now;

116}

117int sap(int s,int t,int n)//

核心**(模版)

118126 gap[s]=n;

127bool

flag;

128while(dis[s]129149 aug=inf;

150}

151break;//

找到一條就退出

152}

153}

154if(flag) continue

;155

int mindis=n;

156for(i=head[u];i!=-1;i=e[i].next)

157164

}165

if((--gap[dis[u]])==0) break

;166 gap[dis[u]=mindis+1]++;

167 u=pre[u];

168}

169return

ans;

170}

171172

bool judge(int

ti)173

194}

195if(map[i][j]=='@'

)196

200}

201}

202 vn+=(n*m);

203 now+=(n*m); //

這個now好像沒啥用

204int t=sap(scr,sink,vn);

205 ans+=t;

206return ans==sum;

207}

208void

solve()

209211

if(!ok())

212 ans=ti=0

;213

while(true

)214

218 printf("

%d\n

",ti);

219}

220int

main()

221227

return0;

228 }

網路程式設計 02 分層模型

1.物理層 主要定義物理裝置標準,如網線的介面型別 光纖的介面型別 各種傳輸介質的傳輸速率等。它的主要作用是傳輸位元流 就是由1 0轉化為電流強弱來進行傳輸,到達目的地後再轉化為1 0,也就是我們常說的數模轉換與模數轉換 這一層的資料叫做位元。2.資料鏈路層 定義了如何讓格式化資料以幀為單位進行傳輸...

計算機網路0 分層

2 tcp ip分層 定義如何將位元流在物理 上傳遞等等 在傳送方將網路層的資料組裝成幀,並加上必要的控制資訊,告訴接收方如何提取資料。主要協議 無連線的網際協議ip 應用層只規定程序互動的規則,運輸層為程序通訊提供通用的資料傳輸服務。通用 指運輸層協議不針對某特特定的網路應用。由於應用層有很多應用...

HDU 4560 我是歌手 網路流 二分

題意 2013年一開始,一檔 節目 我是歌手 就驚豔了大家一回。閒話少說,現在,你成為了這檔節目的總導演,你的任務很簡單,安排每一期節目的內容。現在有n個歌手,m種歌曲流派 rock,pop之類 每個歌手都有自己擅長的流派領域,這些資料都已整理好。你的工作是,安排盡可能多場的演唱比賽。每一場比賽所有...