HNOI2007 緊急疏散

2022-05-13 09:26:01 字數 1038 閱讀 6837

bzoj1189

luogu3191

看上去很像網路流但是還是不會做啊!!!

正解要二分答案然後網路流判定能否走出去,因為乙個時刻只能出去乙個人,所以門是有流量限制的,這樣看是否滿流就行了。

然後建圖要注意只有能到的點才向門連邊,不要「穿牆」。

upd:bzoj的資料好像卡了這種建圖方法……所以要把門拆成時刻建圖,麻煩的要死……就沒有寫……

const int n = 410;

const int m = 20 * n * n * 2;

const int inf = 0x3f3f3f3f;

int hd[n], to[m], nxt[m], cap[m], cnt;

int d[n], qhd, qtl, q[n], s, t;

int n, m, id[n][n];

char mp[40][40];

void init()

void adde(int x, int y, int z)

void adde(int x, int y, int z)

bool bfs()

if (d[t]) break;

}return d[t];

}int dfs(int x, int flw)

}return ret;

}int dinic()

return flw;

}int vis[n][n];

void adde(int x, int y, int tx, int ty, int mxd)

bool check(int x) else if (mp[i][j] == 'd') }}

return dinic() == tot;

}void main() else

}if (~ans)

printf("%d\n", ans);

else

puts("impossible");

}

每次網路流的題都要調好久啊,這樣下去不就gg了嗎……

HNOI2007 緊急疏散

二分 網路流判定 首先處理出每個人和門間的距離 二分時間,連邊時把每個門拆成mid個,乙個人能在mid時間內到達,他也可以在這等一會兒,那麼這mid個門之間連邊 如果可以在x的時間內到達,那麼x mid之間他都可以出去,所以門向門加一連邊 奉上未ac 千萬別複製 include define il ...

HNOI2007 最小矩形覆蓋

給定一些點的座標,要求求能夠覆蓋所有點的最小面積的矩形,輸出所求矩形的面積和四個頂點座標 輸入格式 第一行為乙個整數n 3 n 50000 從第2至第n 1行每行有兩個浮點數,表示乙個頂點的x和y座標,不用科學計數法 輸出格式 第一行為乙個浮點數,表示所求矩形的面積 精確到小數點後5位 接下來4行每...

HNOI2007 最小矩形覆蓋

給定一些點的座標,要求求能夠覆蓋所有點的最小面積的矩形,輸出所求矩形的面積和四個頂點座標 第一行為乙個整數n 3 n 50000 從第2至第n 1行每行有兩個浮點數,表示乙個頂點的x和y座標,不用科學計數法 第一行為乙個浮點數,表示所求矩形的面積 精確到小數點後5位 接下來4行每行表示乙個頂點座標,...