CodeForces1328E dfs,樹的深度

2022-05-20 01:17:45 字數 1145 閱讀 1695

給出乙個有n個頂點的有根樹,頂點的編號從1到n。樹的根節點編號恒為1。

一棵數是具有n-1條邊的聯通圖。

給出 m 個詢問。第i個詢問由 k_i 個不同的節點 v_i[1], v_i[2], …, v_i[k_i]組成. 你的任務是判斷是否存在一條從根節點到u的路徑,使得給出的k_i個節點要麼在這條路徑上,要麼與該路徑上的某個節點距離為1。

#includeusing namespace std;

#define pii pair#define fi first

#define se second

#define mp make_pair

#define ll long long

const int maxn = 2e5 + 10;

const int mod = 1e9 + 7;

int n,m,s;

struct edgeedge[maxn * 2];

int head[maxn],tot;

void init()

void add(int u,int v)

int deep[maxn];

void dfs_deep(int u,int fa)

}vector>q[maxn];

bool flag[maxn];

bool ans[maxn];

void dfs(int u, int fa)

for(int i = 0; i < q[u].size(); i ++)

}

}for(int i = head[u]; ~i; i = edge[i].next)

for(int i = head[u]; ~i; i = edge[i].next)

}int main()

deep[1] = 1;

dfs_deep(1,-1);

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

p.push_back(a);

}q[t].push_back(p);

}flag[1] = 1;

dfs(1,-1);

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

return 0;

}

Codeforces 976E 題解報告

1 當把所有的倍數2 a都加到同一health上,health增加的最多 2 先計算每乙個creature的hp dmg,按該值對所有的creature排序 再求和,i include using namespace std const int n 200 1000 9 int hp n dmg n...

codeforces 1030E 暴力 思維)

題目 題意 給定一些數,可將區間 l r 中某些數的二進位制位的1的位置更換,使得最終區間所有數異或和為0,求這樣的區間個數。思路 在那裡瞎dp了好久,wa的很徹底,借鑑了一下別人的思路。區間合法的條件是 這個區間1的個數為偶數,並且區間中二進位制位1最多的乙個數的二進位制個數小於等於和的一半。我們...

Codeforces 1270E 構造 數學

有 n 個二維平面上的點,每兩個點之間連一條線段,將這些點劃分為兩個非空的集合 a b 同乙個集合內的兩點之間線段用黃色標註,不同集合的兩點之間線段用藍色標註,使距離相同的線段顏色相同。先將所有點的座標以其中乙個點作為原點轉化一下,使其中必定有乙個點是 0,0 然後將所有點按奇偶分為四組 0代表偶數...