101 最高的牛

2022-07-08 05:33:07 字數 720 閱讀 9871

差分+區間處理小操作

這道題目的乙個核心要點,就是如何處理這些特殊的關係,也就是兩頭牛能互相看見。

其實題目中已經告訴我們如何處理,因為我們發現,題目中要求牛的身高最高,那麼既然如此,我們完全可以將每一組關係(a,b),看作[a+1,b-1]這組牛身高比a,b這兩頭牛矮1.

各位可以畫乙個圖,來更好理解這道題目

因此我們可以利用區間處理小操作,也就是字首和加差分。設乙個陣列為d,d[i]為比最高牛矮多少,則d[p]=0,那麼對於一組關係,我們可以這樣操作,d[a+1]-,d[b]++;然後從左往右字首和,就可以求出矮多少。具體可以看**實現。

本題資料內部可能重複,要判重,還有[l,r]不一定lusing namespace std;

map,bool>existed;

int c[10010],d[10010];

int main()

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

return 0;

}

最高的牛 AcWing101(簡單差分)

有 n 頭牛站成一行,被編隊為1 2 3 n,每頭牛的身高都為整數。當且僅當兩頭牛中間的牛身高都比它們矮時,兩頭牛方可看到對方。現在,我們只知道其中最高的牛是第 p 頭,它的身高是 h 剩餘牛的身高未知。但是,我們還知道這群牛之中存在著 m 對關係,每對關係都指明了某兩頭牛 a 和 b 可以相互看見...

差分 最高的牛

最高的牛 有 n 頭牛站成一行,被編隊為1 2 3 n,每頭牛的身高都為整數。當且僅當兩頭牛中間的牛身高都比它們矮時,兩頭牛方可看到對方。現在,我們只知道其中最高的牛是第 p 頭,它的身高是 h 剩餘牛的身高未知。但是,我們還知道這群牛之中存在著 m 對關係,每對關係都指明了某兩頭牛 a 和 b 可...

bzoj1635 最高的牛

初始如果沒有限制,很顯然每一頭牛高度都是h 當只有乙個限制,讓h a 到h b 的高度都減1即可 容易發現兩個限制不會相交 否則必然矛盾 只會包含或相離,因此沒有影響,直接差分 線段樹即可 注意 1.不保證a 1 include2 using namespace std 3struct jia 10...