這個題如果要用線段樹的話首先要考慮如何建樹,那一定是動態開點了而且要維護最大值最小值,但是最氣人的是有刪點操作,所以在新增的時候要判斷是否有節點為空。最後還有乙個條件,相同的**還不允許重新加入,看到這裡應該要換思路了既然滿足不重複的條件,想到之前有道 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 小明覺得當前花束中最便宜的一朵花太廉價,不適...