P5501 LnOI2019 來者不拒,去者不追

2022-09-21 20:15:12 字數 1492 閱讀 1154

來者不拒,去者不追

考慮莫隊,挪動指標往區間 \([l,r]\) 中加入乙個數 \(x\),產生的貢獻就是 \(比 x 大的數之和 + 比 x 小的數的個數\times x +x\)

然後這樣是 \(o(n\sqrt m \log n\)) 的

發現如果不加最後那個 \(x\) 的話就是可差分的(等於對 \([1,r]\) 的貢獻減去對 \([1,l]\) 的貢獻),於是考慮二次離線

預處理簡單,二次離線的時候會產生 \(o(n)\) 此插入乙個數的修改和 \(o(n\sqrt n)\) 此詢問上面的那兩個資訊

在值域上分塊做到 \(o(1)\) 查詢,\(o(\sqrt n)\) 修改即可

最後輸出前把那個 \(x\) 加回來

#define n 500006

#define b 707

#define v 100000

#define vb 316

int n,m;

struct ask;

ask ask[n];

struct node;

std::vectorchange[n];

int belong[n];

long long a[n];

long long bsum[vb+6],sum[v+6],bnum[vb+6],num[v+6];

long long fxx[n],ans[n];

inline void pre()

for(int i=1;i<=n;i++) fxx[i]+=fxx[i-1];

std::memset(bsum,0,sizeof bsum);std::memset(sum,0,sizeof sum);std::memset(bnum,0,sizeof bnum);std::memset(num,0,sizeof num);

}int main()),ans[ask[i].id]-=fxx[l-1]-fxx[l-1],l=l;

// while(l>ask[i].l) ans[ask[i].id]-=fxx[--l];

if(r>r) change[l-1].push_back(),ans[ask[i].id]-=fxx[r]-fxx[r],r=r;

// while(r>ask[i].r) ans[ask[i].id]-=fxx[r--];

if(l// while(l} for(int i=1;i<=n;i++)

} for(int i=1;i<=n;i++) a[i]+=a[i-1];

for(int i=1;i<=m;i++) ans[ask[i].id]+=ans[ask[i-1].id];

for(int i=1;i<=m;i++) ans[ask[i].id]+=a[ask[i].r]-a[ask[i].l-1];

for(int i=1;i<=m;i++) writeen(ans[i]);

return ret;

}

認識P2P,利用P2P

是peer to peer的縮寫 好象還看到過文章說是point to point,我也不清楚,網上的資料也不清楚,鬱悶 peer在英語裡有 地位 能力等 同等者 同事 和 夥伴 等意義。這樣一來,p2p也就可以理解為 夥伴對夥伴 的意思,或稱為對等聯網。目前人們認為其在加強網路上人的交流 檔案交換...

P2P網路模型

1 靜態配置模型 靜態配置模型是一種相對靜態而簡單的對等點定位模型。在該模型中,每個對等點都確切地知道存在於其p2p 網路中其它對等點的位置以及它們所提供的共享資源內容。缺點 網路無法應付不能預知的隨機事件和臨時變更,比如對等點隨機進入和退出網路。優點 整個網路在外部攻擊面前表現得很穩固。2 動態配...

P2P路由演算法

p2p路由演算法 資源定位方法 dht distributed hash table 演算法 思想 每乙份資源都由一組關鍵字標示,系統對其中的每乙個關鍵字進行hash,根據hash的結果確定該關鍵字由哪個使用者負責儲存,使用者搜尋的同時,用同樣的演算法計算每乙個字的hash,再根據hash知道該關鍵...