NOIP 2010 引水入城

2022-05-23 08:27:09 字數 718 閱讀 8990

點我\(dfs\)+記憶化

首先\(dfs\)一下求下面的點是不是能全被覆蓋到,打乙個標記

順便記憶化一下最後一排左右延伸能延伸到**

然後對於最後一排如果能流滿,那麼還有乙個性質,每個起點能覆蓋的最後一排是乙個連續段

這一點證明可以看洛谷部落格,簡單來說就是如果兩個起點的水流在某個點流到一起了,那順著分叉一定能流到另外一邊的

**細節實現上還是不夠熟練,裸的\(dfs\)寫的很多了,但是帶一點記憶化/剪枝的有時候就寫不出來,還是要多做題

#include#define n (1000 + 10)

using namespace std;

inline int read()

while (isdigit(c))

return cnt * f;

}int n, m, map[n][n], flow[n][n];

int l[n][n], r[n][n], cnt;

const int fx[4] = ;

const int fy[4] = ;

void dfs_(int d, int x, int y)

}int main()

int l = 1;

while (l <= m)

puts("1"); printf("%d", cnt);

return 0;

}

NOIP2010 引水入城

兩遍bfs floodfill,第一遍bfs可以判斷出最後是輸出0還是輸出1,第二遍bfs floodfill不懂 program flow const dx array 1.4 of 1.1 1,0,1,0 dy array 1.4 of 1.1 0,1,0,1 type atp record x...

NOIP2010 引水入城

4引水入城在乙個遙遠的國度,一側是風景秀美的湖泊,另一側則是漫無邊際的沙漠。該國的行政區劃十分特殊,剛好構成乙個n 行m 列的矩形,如上圖所示,其中每個格仔都代表一座城市,每座城市都有乙個海拔高度。為了使居民們都盡可能飲用到清澈的湖水,現在要在某些城市建造水利設施。水利設施有兩種,分別為蓄水廠和輸水...

NOIP 2010 引水入城

題目描述 在乙個遙遠的國度,一側是風景秀美的湖泊,另一側則是漫無邊際的沙漠。該國的行政 區劃十分特殊,剛好構成乙個n行m列的矩形,如上圖所示,其中每個格仔都代表一座城 市,每座城市都有乙個海拔高度。為了使居民們都盡可能飲用到清澈的湖水,現在要在某些城市建造水利設施。水利設施 有兩種,分別為蓄水廠和輸...