題面注意問題本身的特殊性質來解決問題,注意到每個起點到最後一行的路線之間獨立,容易想到一種方法:第一行所有點都跑一次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...