引水入城 記憶化搜尋

2022-05-20 23:00:33 字數 539 閱讀 6521

題面注意問題本身的特殊性質來解決問題,注意到每個起點到最後一行的路線之間獨立,容易想到一種方法:第一行所有點都跑一次dfs,然後標記一下最後一行是誰跑到的,最後問題轉換為選取最少個區間覆蓋整個區間的問題。

#include #include #include #define maxn 505

using namespace std;

bool vis[maxn][maxn];

int mv[4][2]=,,,};

int n,m;

int h[maxn][maxn];

int l[maxn][maxn];

int r[maxn][maxn];

void dfs(int x, int y)

}void solve()

int cur=1,ans=0;

while(cur<=m)

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

}int main()

洛谷 P1514 引水入城(記憶化搜尋 貪心)

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

洛谷P1514 引水入城 記憶化搜尋 線段覆蓋

題目大意 n m個城市,要求在最後一行的乾旱區所有城市中建設水利設施。水利設施有兩種,一種為蓄水廠,一種為輸水站。第一行城市由於沿海,可以建設蓄水廠。某城市建輸水站的要求是相鄰 上下左右 且高度比自己高的城市建有水利設施 利用高度差輸水 如果可以全部建成,則輸出最少要建幾個蓄水廠。否則輸出乾旱區中不...

題解 引水入城

luogu loj 從上向下記憶化搜尋,儲存每個點能覆蓋的最底層的區間。如果乙個點能到達的區間不連續,那麼一定沒有方案。然後做乙個基礎貪心 從n個區間中選出盡量少的區間,覆蓋1 n include include include define n 510 define ll long long de...