搜尋+貪心。
主要是要看出來,如果有解的話,每個沿湖城市能夠流到的範圍是連續的區間...然後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列的矩形,如上圖所示,其中每個格仔都代表一座城 市,每座城市都有乙個海拔高度。為了使居民們都盡可能飲用到清澈的湖水,現在要在某些城市建造水利設施。水利設施 有兩種,分別為蓄水廠和輸...