又是複雜度錯誤的一題,\(o(n^2\log n)\) 能過 \(15000\) 。
更新時將物品當做標記,打到線段樹上 ,遍歷到乙個節點時,都在上面做揹包,往兒子走時將揹包陣列拷貝下來,到另乙個兒子重新拷貝一次,故揹包個數和深度相同。
詢問時由於已經維護好了目前的揹包,可以直接詢問。
這就是\(\text\) 棧的思路,在 \(\text\) 時維護乙個棧,直接將父親的資訊拿下來使用。
#include#define for(i,x,y) for(int i=(x),i##end=(y);i<=i##end;++i)
#define dor(i,x,y) for(int i=(x),i##end=(y);i>=i##end;--i)
#define x first
#define y second
typedef long long ll;
using namespace std;
typedef pairpii;
const int n=15005;
const int logn=18;
struct knapsack
void reset(int _n)
void zo(int v,int w)
};knapsack ks[logn];
vectora[n<<2];
int q,maxv,t;
ll lastans;
void update(int k,int l,int r,int v,int w,int l,int r)
int mid=(l+r)>>1;
if(l<=mid)update(k<<1,l,r,v,w,l,mid);
if(r>mid)update(k<<1|1,l,r,v,w,mid+1,r);
}void solve(int k,int d,int l,int r)
else
else
} return;
} int mid=(l+r)>>1;
solve(k<<1,d+1,l,mid);
solve(k<<1|1,d+1,mid+1,r);
}int main()
5 3 4 變數的使用規則
因為定義乙個成員變數時,成員變數將被放置到堆記憶體中,成員變數的作用域將擴大到類存在範圍或者物件存在範圍,這種範圍的擴大有兩個害處 增大了變數的生存空間,這將導致更大的記憶體開銷。擴大了變數的作用域,這不利於提高程式的內聚性。package chap5 3 public class scopetes...
php 5 3 4安裝配置 原創
2.安裝 前面配置可看 和老的沒有區別 下面開始安裝5.3.4 tar zxvf php 5.3.4.tar.gz cd php 5.3.4 make zend extra libs liconv make install 安裝個開發環境試試 cp php.ini development usr l...
Python高階之路 5 3 4 split方法
split和join方法互為逆方法。split方法通過分隔符將乙個字串拆成乙個序列。如果split方法不指定任何引數,那麼split方法會把所有空格 空格符 製表符 換行符等 作為分隔符。例 5.12 本例使用split方法將乙個加法表示式的運算元放到了乙個序列中,並輸出該序列。並且將乙個linux...