欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

題解 | #好子樹#

好子樹

http://www.fangfengwang8.cn/practice/aca56bd0c9414c71b94d3a2851f4e0e7

#include <iostream>
#include <vector>
using namespace std;

int dfs(int p,vector<vector<int>> &edges,vector<int> &nums,int &maxnum,int &minnum){
    int ma=nums[p],mi=nums[p],n=0;
    for(auto a:edges[p]) n+=dfs(a,edges,nums,ma,mi);
    maxnum=max(maxnum,ma);
    minnum=min(minnum,mi);
    if((ma-mi)%2==1){
        n++;
        nums[p]=-1;
    }
    return n;
}

int main() {
    int n,u,v;
    cin>>n;
    vector<int> nums(n);
    vector<vector<int>> edges(n);
    for(int i=0;i<n;i++) cin>>nums[i];
    while(cin>>u>>v) edges[u-1].emplace_back(v-1);
    int maxnum=nums[0],minnum=nums[0];
    cout<<dfs(0,edges,nums,maxnum,minnum)<<endl;
    for(int i=0;i<n;i++) if(nums[i]==-1) cout<<i+1<<' ';
    return 0;
}

利用dfs深度優(yōu)先搜索解題。nums數(shù)組存儲(chǔ)節(jié)點(diǎn)權(quán)值,edges二維數(shù)組存儲(chǔ)邊。對(duì)于一個(gè)節(jié)點(diǎn),搜索其下一節(jié)點(diǎn),并返回子樹的最大最小值。若差值為奇數(shù)則為將該節(jié)點(diǎn)p標(biāo)記(可直接將nums[p]賦值為-1來(lái)標(biāo)記以節(jié)省空間,反正后續(xù)也不再需要用到p的權(quán)值)

全部評(píng)論
評(píng)論
3
收藏
分享

創(chuàng)作者周榜

更多
??途W(wǎng)
??推髽I(yè)服務(wù)