五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

??透?jìng)賽題目講解_DongDong數(shù)顏色(樹(shù)上啟發(fā)式合并)

2022-05-10 12:22 作者:Clayton_Zhou  | 我要投稿

//?https://ac.nowcoder.com/acm/contest/31084/C

//??透?jìng)賽題目講解_DongDong數(shù)顏色(樹(shù)上啟發(fā)式合并)


#include "stdafx.h"

//#include <bits/stdc++.h>



#include <iostream>

#include <cstdio>

#include <cstring>

#include <algorithm>

?

#include <vector>

#define LL long long

using namespace std;


int a[100005];//dfs序的顏色

int b[100005]={

0,1 ,4 ,2, 2

};//i節(jié)點(diǎn)的顏色

int c[100005];//顏色桶

int dfn[100005];//dfs序編號(hào)

int s[100005];//子樹(shù)節(jié)點(diǎn)個(gè)數(shù)

int son[100005];//重鏈節(jié)點(diǎn)

int ans[100005];

int now=0, T=0;

vector<int> G[100005];


void dfs(int u, int fa){//得到dfs序,和以u(píng)為根節(jié)點(diǎn)子樹(shù)節(jié)點(diǎn)個(gè)數(shù)

? ? s[u]=1; dfn[u]=++T;


//cout<<u<<",? ?son[u]="<<son[u]<<endl;

? ? for(auto x: G[u])

{

? ? ? ? if(x!=fa){

? ? ? ? ? ? dfs(x, u); s[u]+=s[x];

? ? ? ? ? ?// son[u]=s[x]>s[son[u]]?x:son[u];

//if(x==4)cout<<u<<",? s[x]="<<s[x]<<", son[u]="<<son[u]<<endl;

? ? ? ? }

? ? }

cout<<u<<"=u,? s[u]="<<s[u]<<endl;

}


void add(int u){//計(jì)算貢獻(xiàn)

//cout<<u<<"=u, c[u]="<<c[u]<<", !c[u]="<<!c[u]<<endl;

? ? now+=!c[u]++;//? 相同顏色只加一次

}


void DFS(int u, int fa ){//當(dāng)前節(jié)點(diǎn), 父親節(jié)點(diǎn)?

? ? for(auto x: G[u]){//把 所有子樹(shù)的答案計(jì)算出來(lái)

? ? ? ? if(x!=fa)

{ // 計(jì)算子樹(shù)

? ? ? ? ? ? DFS(x, u);

? ? ? ? }

? ? }

? ? //計(jì)算u這棵樹(shù)的答案? ??

? ? ? ? ? ? for(int i=0; i<s[u]; i++){

? ? ? ? ? ? ? ? add(a[dfn[u]+i]);//子樹(shù)的dfs序是連續(xù)的

? ? ? ? ? ? }

????ans[u]=now;//把u自己加進(jìn)去

? ?

// 清空

? ? ? ? for(int i=now=0; i<s[u]; i++){

? ? ? ? ? ? c[a[dfn[u]+i]]=0;

? ? ? ? }? ? ?

}

int edge[32][2]={

1 ,4,

1 ,2,

2, 3

};

int main(){

? ? int n, m, x, y, q;

n=4;m=3;

//scanf("%d%d", &n, &m);

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

? ? ? ?// scanf("%d", &b[i]);

? ? }

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

? ? ? ? //scanf("%d%d", &x, &y);

x=edge[i-1][0];

y=edge[i-1][1];

? ? ? ? G[x].push_back(y);

? ? ? ? G[y].push_back(x);

? ? }

? ? dfs(1, 0);

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

cout<<dfn[i]<<",? ";

? ? ? ? a[dfn[i]]=b[i];

? ? }

cout<<endl<<" dfs number "<<endl;

? ? DFS(1, 0);

int qu[32]={4,2,1};

? ? while(m--){

? ? ? ?// scanf("%d", &q);

? ? ? ? printf("%d\n", ans[qu[m]]);

? ? }

? ? return 0;

}


牛客競(jìng)賽題目講解_DongDong數(shù)顏色(樹(shù)上啟發(fā)式合并)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
宜宾县| 岐山县| 方山县| 定西市| 无极县| 清水河县| 托里县| 上虞市| 万荣县| 日喀则市| 济南市| 乌海市| 沁水县| 宁陵县| 嫩江县| 利辛县| 工布江达县| 司法| 吉隆县| 黄冈市| 塔城市| 苏尼特左旗| 赫章县| 彩票| 嘉定区| 濮阳县| 清远市| 十堰市| 涟源市| 米易县| 宝兴县| 靖西县| 沂南县| 旌德县| 兰西县| 景洪市| 漠河县| 余姚市| 东宁县| 霞浦县| 醴陵市|