NOIP 2010 引水入城

2022-05-31 08:12:11 字數 1237 閱讀 5773

搜尋+貪心。

主要是要看出來,如果有解的話,每個沿湖城市能夠流到的範圍是連續的區間...然後1遍dfs判斷有無解,2遍確定區間,最後排序貪心。

直覺上來說,如果流到的區域中間是斷的,那麼中間的地勢一定比兩邊高,從其他地方也流不到。

(理論上是應該bfs的= =)

p r[maxn]; //第一行每個城市可以流到的範圍

void dfs(int x, int y)

for(int i = 0; i < 4; ++i) }}

void dfsl(int s, int x, int y)

for(int i = 0; i < 4; ++i) }}

void dfsr(int s, int x, int y)

for(int i = 0; i < 4; ++i) }}

int main() }

for(int i = 0; i < m; ++i)

if(cnt < m)

//***********************************===

for(int i = 0; i < m; ++i)

memset(vis, 0, sizeof(vis));

for(int i = 0; i < m; ++i)

} memset(vis, 0, sizeof(vis));

for(int i = m-1; i >= 0; --i)

} sort(r, r + m);

int ans = 0, nowr = -1, maxr, i = 0;

while(i < m && nowr < m - 1)

nowr = maxr;

++ans; }

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

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列的矩形,如上圖所示,其中每個格仔都代表一座城 市,每座城市都有乙個海拔高度。為了使居民們都盡可能飲用到清澈的湖水,現在要在某些城市建造水利設施。水利設施 有兩種,分別為蓄水廠和輸...