防曬 貪心 平衡樹

2022-05-07 14:57:12 字數 848 閱讀 6739

證明不會:yxc說要用匈牙利演算法,來確定增廣路徑;

演算法步驟:

1.將牛按minspf從大到小排序

2.每次取出滿足當前條件,最大的spf。

因為是按開始從大到小排序,所以假設x, y防曬,spfs[x] < spfs[y], 那麼可能後面的牛能用到x,y,或者只用到x,或者都用不上。因為後面的牛可能可以用x,所以當前這頭牛應該選擇在它適合的範圍最大的spf。

所以結論成立。

**

1 #include 2 #include 3 #include 4

using

namespace std;56

typedef pair pii;

7const

int n = 2500 + 5;

8 pii cows[n];

9int main()

19 sort(cows, cows+c);

20int res = 0;

21 spfs[0] = spfs[1001] = c; //auto spf = spfs.upper_bound(cows[i].second);

22//這句話是在spfs中查詢大於cows[i].second的最小元素

23//,設定哨兵是為了讓這條語句不返回空。

24for(int i = c-1; i >= 0; -- i)

32 }

33 cout << res << endl;

34return 0;

35 }

NC19775 平衡二叉樹 貪心

這題的第一想法就是我們對根節點進行貪心構造,使得左子樹和右子樹的差最大,這是最優的 左子樹自然是以n 1為高度的滿二叉樹,這樣節點最多,那麼右子樹我們需要考慮如何滿足高度的平衡限制 我們發現為了對每個點都滿足左右子樹差值為d,我們相當於對於每個節點,左子樹是乙個高度為i 1的最少節點的樹,而右子樹是...

Tyvj P1728 普通平衡樹 平衡樹

題目鏈結 p1728普通平衡樹 此為平衡樹系列第一道 普通平衡樹 1.插入x數 2.刪除x數 若有多個相同的數,因只刪除乙個 3.查詢x數的排名 若有多個相同的數,因輸出最小的排名 4.查詢排名為x的數 5.求x的前驅 前驅定義為小於x,且最大的數 6.求x的後繼 後繼定義為大於x,且最小的數 第一...

平衡查詢樹

在前面我們說了二叉查詢樹,它在最壞的情況下是很糟糕的。下面我們來說一種查詢樹,這種這查詢樹能夠保證無論如何構造它,它的執行時間都是對數級別的。理想情況下我們希望能夠保持二分查詢樹的平衡性。在一棵含有n個結點的樹中,我們希望樹的高度為lgn,這樣我們就能保證所有查詢能在lgn次比較內結束,就和二分查詢...