題解 2020 10 24 考試 T4 模板

2022-05-01 19:27:13 字數 1625 閱讀 8850

題目傳送門

有乙個 \(n\) 個點組成的樹,有 \(m\) 次操作,每次將 \(1\to x\) 的路徑上每個點都加入乙個顏色為 \(c\) 的小球。但是每個點都有大小限制,即小球個數超過一定量之後就不能再加入了。有 \(q\) 次查詢,問操作完了之後每個點有多少種不同顏色的小球。

sto llsw yyds orz

以下皆為 llsw yyds 的思路,與本人無關。

我們首先可以整體二分出每乙個點在多久會被填滿,然後掃瞄線一波,問題就是如何判斷乙個子樹內不同顏色的個數。這個我們可以直接容斥,就每次加入乙個顏色的時候減掉與之前重複的即可。

時間複雜度 \(\theta(n\log n)\)。

#include using namespace std;

#define maxn 100005

#define int int

template inline void read (t &t)while (c >= '0' && c <= '9') t *= f;}

template inline void read (t &t,args&... args)

template inline void write (t x)if (x > 9) write (x / 10);putchar (x % 10 + '0');}

vector g[maxn];

int n,m,uni,tmpc[maxn];

struct modseq[maxn];

int ind,tur[maxn],ans[maxn],lim[maxn],dfn[maxn],dep[maxn],siz[maxn],par[maxn][21];

void dfs (int u,int fa)

int getlca (int u,int v)

}struct bit_tree

void modify (int x,int v)

int query (int x)

int query (int l,int r)

}tree;

vector qry[maxn];

void solve (vector &tmp,int l,int r)

vector lson,rson;

int mid = (l + r) >> 1;

for (int i = l ? l : 1;i <= mid;++ i) tree.modify (dfn[seq[i].u],1);

for (int u : tmp)

tmp.clear();

solve (rson,mid + 1,r);

for (int i = l ? l : 1;i <= mid;++ i) tree.modify (dfn[seq[i].u],-1);

solve (lson,l,mid);

}set cols[maxn];

void insert (set &s,int u)

signed main()

int q;read (q);

for (int i = 1,x;i <= q;++ i) read (x),write (ans[x]),putchar ('\n');

return 0;

}

1101上午考試T4

題目大意 有 n 輪比賽,最終成績由這 n 輪比賽中贏的輪數決定。如果在第 i 輪比賽賽選擇積極應戰,並且前 i 1 輪比賽中取得了 j 勝的話,那麼第 i 輪比賽的勝率概率為 p i j 這裡我們保證了對於同乙個 i,p i j 關於 j 的上公升保持單調不上公升 也就是說 p i j p i j...

T4模板語法

t4,即4個t開頭的英文本母組合 text template transformation toolkit。t4文字模板,即一種自定義規則的 生成器。根據業務模型可生成任何形式的文字檔案或供程式呼叫的字串。模型以適合於應用程式域的形式包含資訊,並且可以在應用程式的生存期更改 template deb...

T4模板 入門

t4模板作為vs自帶的一套 生成器,功能有多強大我也不知道,最近查詢了一些資料學習一下,做個筆記 更詳細的資料參見 msdn 你必須懂的t4模板 深入淺出 t4模板是沒有顏色高亮提示的,我們可以安裝vs支援的外掛程式,我安裝的是 t4 editor,當然還有其他比如 visual t4等,t4模板分...