貪心這個很簡單吧;
就是按右端排序;
當前區間不滿則在右端種樹;
這樣可以保證重複最多;
spfa就很有意思了
其實題目化開來
查分約束系統,變數dis[k]是前k家種樹的字首和,滿足三個條件:對於第乙個,我們把b-1到e連一條t的邊1.s[e] - s[b-1] >= t (居民要求)
2.s[k] - s[k-1] >= 0 (不能種負樹)
3.s[k] - s[k-1] <= 1 (一塊地種一棵)
對於第二個,我們把k-1到k連一條0的邊
對於第三個,我們把k到k-1連一條-1的邊
直接跑最長路;
原因自己模擬模擬;
感覺和網路流建圖差不多的想法啊;
#include
using
namespace
std;
const
int n=30005;
struct csa[n*100];
int d[n];
bool in[n];
int head[n],ll;
int x,y,n,m,z;
void init (int x,int y,int z)
void spfa(int s)}}
}}int main()
for(int i=1;i<=n;i++)
spfa(0);
printf("%d",d[n]);
}
洛谷 P1250 種樹 貪心
一條街的一邊有幾座房子。因為環保原因居民想要在路邊種些樹。路邊的地區被分割成塊,並被編號成1.n。每個部分為乙個單位尺寸大小並最多可種一棵樹。每個居民想在門前種些樹並指定了三個號碼b,e,t。這三個數表示該居民想在b和e之間最少種t棵樹。當然,b e,居民必須記住在指定區不能種多於區域地塊數的樹,所...
洛谷P1250種樹(貪心)
一條街的一邊有幾座房子。因為環保原因居民想要在路邊種些樹。路邊的地區被分割成塊,並被編號成1.n。每個部分為乙個單位尺寸大小並最多可種一棵樹。每個居民想在門前種些樹並指定了三個號碼b,e,t。這三個數表示該居民想在b和e之間最少種t棵樹。當然,b e,居民必須記住在指定區不能種多於區域地塊數的樹,所...
20190709種樹(洛谷P1250)
題目描述 一條街道的一邊有幾座房子,因為環保原因居民想要在路邊種些樹,路邊的居民被分割成 n 塊,並被編號為 1 n。每塊大小為乙個單位尺寸並最多可種一棵樹。每個居民想在門前種些樹並指定了三個數b,e,t。這三個數分別表示該居民想在b和e之間最少種t棵樹,當然b e,t e b 1,允許居民想種樹的...