傳送門
可以把最外兩層取出來然後列舉選哪乙個出來 , 這樣做是o(1)的
我的做法是列舉每次少哪乙個點 , 在樹狀陣列裡修改 , 然後查最大最小就可以 , 這樣是o(nlogn)的
另外 , 注意
#define inf 0x7fffffff
如果是0x3fffffff的話不夠大
#include#define n 50050
#define m 40050
#define inf 0x7fffffff
using namespace std;
struct nodea[n];
int n,c[m][2],ans=inf;
int read()
void insert(int k,int x,int val)
int calc() y_max = ans+1;
return (x_max-x_min) * (y_max-y_min);
}int main()
for(int i=1;i<=n;i++) printf("%d",ans); return 0;
}
bzoj 1106 貪心 樹狀陣列 或 棧模擬
題意 n個數,各出現兩次,當兩個相同的數相鄰時,這兩個數同時消除,上方的方塊同時下落且可繼續消除滿足條件的。每次可交換相鄰的兩個方塊,求最少交換次數使得所有數全消除 首先,對於一對相同的數中間有另一對的情況 即兩對相同的數是巢狀關係 肯定要先消除另一對 其次,對於一對相同的數中間有另一對中的乙個的情...
樹狀陣列1 樹狀陣列入門
仔細看一下,發現tree的每乙個節點的高度並不是隨意的,而是由它轉成二進位制之後末尾連續零的數量決定的,連續零的數量加1,就是高度,例如 3 11 零的數量為0,加1等於1,所以它的高度就是1 6 110 零的數量為1,加1等於2,所以它的高度就是2 8 1000 零的數量為3,加1等於4,所以它的...
模板 樹狀陣列1
這篇是樹狀陣列模板1 主要內容有 1.將某數加上x 2.求某區間和 也就是說支援單點修改 關於樹狀陣列的部落格講解 見基本介紹 include include include using namespace std define in read typedef long long ll const ...