貪心 DFS 引水入城

2022-05-12 03:55:40 字數 807 閱讀 9388

。。。我覺得這道題放在貪心裡應該不為過

原文: 

題目測評——》

。。。自行放大。。。

題解:最開始的思路是全排列+搜尋,預估30分。正解是搜尋+dp,先對每個

靠近河岸的點搜一次,儲存下來這個點能夠覆蓋的區間,也就是能到達

的靠近沙漠的點,然後對於這些區間進行dp,找出覆蓋所有區間用的

最少的點。另外用乙個陣列儲存所有蓄水站能夠覆蓋到的點,來找到不能覆蓋完的情況。

搜尋部分是常規的dfs,dp部分定義d(i),表示覆蓋到i點的乙個狀態,遍歷j來尋找最優的重疊情況。

**:

#include#define maxa 700

using namespace std;

bool vis[maxa][maxa];

int n,m,cnt,ok[maxa],map[maxa][maxa],d[maxa],left[maxa],right[maxa];

int drct[5][3]=,,,};

void dfs(int x,int y,int origin)

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

int main()

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

if(!ok[i])

cnt++;

if(cnt)

d[0]=0;

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

for(int j=1;j<=m;j++)

printf("1\n");

printf("%d",d[m]);

}

題解 引水入城

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

P1514 引水入城 DFS

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

Codevs P1066 引水入城 BFS 貪心

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