BZOJ 4448 Scoi2015 情報傳遞

2022-04-30 03:45:07 字數 1995 閱讀 5885

bzoj_4448_[scoi2015]情報傳遞_主席樹

奈特公司是乙個巨大的情報公司,它有著龐大的情報網路。情報網路中共有n名情報員。每名情報員口j-能有

若t名(可能沒有)下線,除1名大頭日外其餘n-1名情報員有且僅有1名上線。奈特公司紀律森嚴,每

名情報員只能與自己的上、下線聯絡,同時,情報網路中仟意兩名情報員一定能夠通過情報網路傳遞情報。

奈特公司每天會派發以下兩種任務中的乙個任務:

1.蒐集情報:指派t號情報員蒐集情報

2.傳遞情報:將一條情報從x號情報員傳遞給y號情報員

情報員最初處於潛伏階段,他們是相對安全的,我們認為此時所有情報員的危險值為0;-旦某個情報員開

始蒐集情報,他的危險值就會持續增加,每天增加1點危險值(開始蒐集情報的當天危險值仍為0,第2天

危險值為1,第3天危險值為2,以此類推)。傳遞情報並不會使情報員的危險值增加。

為了保證傳遞情報的過程相對安全,每條情報都有乙個風險控制值c。餘特公司認為,參與傳遞這條情

報的所有情報員中,危險值大於c的情報員將對該條情報構成威脅。現在,奈特公司希望知道,對於每

個傳遞情報任務,參與傳遞的情報員有多少個,其中對該條情報構成威脅的情報員有多少個。

第1行包含1個正整數n,表示情報員個數。

笫2行包含n個非負整數,其中第i個整數pi表示i號情報員上線的編號。特別地,若pi=0,表示i號

情報員是大頭目。

第3行包含1個正整數q,表示奈特公司將派發q個任務(每天乙個)。

隨後q行,依次描述q個任務。

每行首先有1個正整數k。若k=1,表示任務是傳遞情報,隨後有3個正整數xi、yi、ci,依次表示傳遞

情報的起點、終點和風險控制值;若k=2,表示任務是蒐集情報,隨後有1個正整數ti,表示蒐集情報的

情報員編號。

對於每個傳遞情報任務輸出一行,應包含兩個整數,分別是參與傳遞情報的情報員個數和對該條情報構成威脅的情報員個數。

輸出的行數應等於傳遞情報任務的個數,每行僅包含兩個整數,用乙個空格隔開。輸出不應包含多餘的空行和空格。

70 1 1 2 2 3 3

61 4 7 0

2 12 4

2 71 4 7 1

1 4 7 3

5 05 2

5 1離線,求出每個點開始蒐集情報的最早的時間。

然後詢問相當於查詢有多少個點,滿足位置和時間兩個條件。

於是用主席樹數一下點即可。

主席樹維護根到路徑的資訊。

**:

#include #include #include using namespace std;

#define n 200050

int head[n],to[n<<1],nxt[n<<1],cnt,dfn[n],dep[n],fa[n],root[n],ls[n*30],rs[n*30],t[n*30],tot;

int f[n][20],rt,n,m;

struct a a[n];

inline void add(int u,int v)

void insert(int &y,int x,int l,int r,int v)

void dfs(int x,int y)

}}int lca(int x,int y)

if(x==y) return x;

for(i=18;i>=0;i--)

}return f[x][0];

}int query(int x,int y,int z,int w,int l,int r,int v)

int main()

}scanf("%d",&m);

for(i=1;i<=m;i++) else

}dfs(1,0);

for(j=1;(1<}

for(i=1;i<=m;i++)

printf("%d\n",query(root[a[i].x],root[a[i].y],root[l],root[p],1,m,i-a[i].z-1));}}

}

bzoj 4448 Scoi2015 情報傳遞

description 奈特公司是乙個巨大的情報公司,它有著龐大的情報網路。情報網路中共有n名情報員。每名情報員口j 能有 若t名 可能沒有 下線,除1名大頭日外其餘n 1名情報員有且僅有1名上線。奈特公司紀律森嚴,每 名情報員只能與自己的上 下線聯絡,同時,情報網路中仟意兩名情報員一定能夠通過情報...

BZOJ4448 Scoi2015 情報傳遞

bzoj4448 scoi2015 情報傳遞 奈特公司是乙個巨大的情報公司,它有著龐大的情報網路。情報網路中共有n名情報員。每名情報員口j 能有若t名 可能沒有 下線,除1名大頭日外其餘n 1名情報員有且僅有1名上線。奈特公司紀律森嚴,每名情報員只能與自己的上 下線聯絡,同時,情報網路中仟意兩名情報...

BZOJ4448 SCOI2015 情報傳遞

傳送門 題目大意 給定一棵樹,支援兩種操作 將乙個點染黑,詢問路徑上在 k 步操作前就已經被染黑的點的數量。題解將染黑看做給乙個點賦其操作編號點權,每次詢問路徑上點權小於一定值的數量。這樣會有乙個性質,由於 k 0 所以我們完全可以在查詢之前將所有點權賦上。所以只需要離線然後查詢就好了,可以在樹上利...