洛谷 P2073 送花(權值線段樹)

2021-10-12 01:43:40 字數 930 閱讀 4913

這個題如果要用線段樹的話首先要考慮如何建樹,那一定是動態開點了而且要維護最大值最小值,但是最氣人的是有刪點操作,所以在新增的時候要判斷是否有節點為空。最後還有乙個條件,相同的**還不允許重新加入,看到這裡應該要換思路了既然滿足不重複的條件,想到之前有道 multiset 的題,題目用權值線段樹解決

刪點時向區間最左或最右靠攏即可,新增時判斷點是否早已存在

const int n=1e6+5;

int i,j,k;

int n,m;

//int a[n];

struct node

}t[n<<2];

void push_up(int id)

void add(int l,int r,int w,int pos,int id)

else

}void erase(int l,int r,bool flag,int id)

else

push_up(id);

}}int main()

else if(opt==2) else if(opt==3) else break;

}printf("%d %d\n",t[1].sum,t[1].val);

//pause;

return 0;

}

P2073 送花(權值線段樹)

題目描述小明準備給小紅送一束花,以表達他對小紅的愛意。他在花店看中了一些花,準備用它們包成花束。這些花都很漂亮,每朵花有乙個美麗值w,為c。小明一開始有乙個空的花束,他不斷地向裡面新增花。他有以下幾種操作 操作 含義 1 w c 新增一朵美麗值為w,為c的花。3 小明覺得當前花束中最便宜的一朵花太廉...

洛谷P2073 送花

小明準備給小紅送一束花,以表達他對小紅的愛意。他在花店看中了一些花,準備用它們包成花束。這些花都很漂亮,每朵花有乙個美麗值w,為c。小明一開始有乙個空的花束,他不斷地向裡面新增花。他有以下幾種操作 操作 含義 1 w c 新增一朵美麗值為w,為c的花。3 小明覺得當前花束中最便宜的一朵花太廉價,不適...

洛谷P2073 送花

小明準備給小紅送一束花,以表達他對小紅的愛意。他在花店看中了一些花,準備用它們包成花束。這些花都很漂亮,每朵花有乙個美麗值w,為c。小明一開始有乙個空的花束,他不斷地向裡面新增花。他有以下幾種操作 操作 含義 1 w c 新增一朵美麗值為w,為c的花。3 小明覺得當前花束中最便宜的一朵花太廉價,不適...