BZOJ4419 SHOI2013發微博(平衡樹)

2022-05-20 15:46:10 字數 997 閱讀 9351

好友狀態的變化次數不會超過m,於是考慮暴力,對每個人記錄其好友關係的變化,通過字首和計算貢獻。這需要查詢一段字首時間內某人發的微博數量,可以離線建一棵絕對平衡的平衡樹。事實上完全可以線性。

#include#include

#include

#include

#include

#include

#include

using

namespace

std;

intread()

while (c>='

0'&&c<='

9') x=(x<<1)+(x<<3)+(c^48),c=getchar();

return x*f;

}#define n 200010

#define m 500010

int n,m,ans[n],root[n],cnt=0

,flag[n];

vector

t[n],h[n],op[n],a[n];

struct datatree[m];

void build(int i,int &k,int l,int

r) build(i,tree[k].ch[

0],l,mid-1

); build(i,tree[k].ch[

1],mid+1

,r);

tree[k].s=tree[tree[k].ch[0]].s+tree[tree[k].ch[1]].s+1;}

int query(int k,int

x)int

main()

}for (int i=1;i<=n;i++)

if(a[i].size())

for (int i=1;i<=n;i++)

for (int i=1;i<=n;i++) printf("

%d "

,ans[i]);

return0;

}

Bzoj3562 神器化合物 Shoi 2014

ac通道 分析 若把每乙個原子看作乙個節點,將化學鍵看作一條邊,那麼這個題目要求的 分子的個數 很容易就可以看出是求圖中聯通塊的個數。求聯通塊的個數,可以使用並查集。可如何求出每一步的聯通塊的個數呢?可以知道,當連上一條邊時,若此邊連線的是兩個不同的聯通塊,那麼分子個數就會減一 當刪去一條邊時,若刪...

BZOJ 3566 SHOI2014 概率充電器

題目 題意 給定樹形結構的n個元件,每個元件有一定概率自己充電,還有一定概率通過某條邊給其他元件充電,求充電的元件期望個數。n 500000 題解 樹形結構肯定能想到樹形dp,全樹對某點產生的貢獻一般可以通過一到兩遍樹形dp計算得出,本題所求期望等於每個元件被充電的概率之和。設f i 表示i被充電的...

bzoj3566 SHOI2014 概率充電器

n個充電器連成一棵樹。第i個充電器有p i 的概率直接充電。每條導線有一定機率可以導電。可以導電的導線形成的聯通塊中只要存在直接充電的結點整個聯通塊的充電器均進入充電狀態。問期望進入充電狀態的充電器個數 顯然可知我們只需要得到f i 表示i進入充電狀態的概率 那麼a ns f i 我們把無根樹變有根...