JAVA进阶训练营(2021最新版)

229 阅读2分钟

download:JAVA进阶训练营(2021最新版)

哪些人适合报名 Java 进阶训练营?

2 年及以上工作经验的 Java 工程师

面临瓶颈,急需突破的 Java 工程师

想升职加薪,进大厂的 Java 工程师

想建立自己的知识体系的 Java 工程师

Q:是否有基础要求?

你需要有 2 年以上的 Java 工作经验,掌握 Java 基础语法,并有相关的项目经验。

Q:课程学完后能到什么水平?

Java 进阶训练营课程设计对标阿里 P7,课程中的项目实战开发,不仅仅让你提升了 Java 编程技能,同时也会培养你进入一线互联网大厂必备的思维能力。

我们的课程培养目标是大厂的高级 Java 工程师、资深 Java 开发工程师、Java 技术专家和 Java 架构师,按照讲师的路径规划,用心努力学习,完成每一个实战项目,就可以具备成为 Java 架构师和进入一线大厂的能力。

![]()![]()```
1 #include<bits/stdc++.h>
2 using namespace std;
3 const int maxn=3e5+10;
4 const int mod=1e9+7;
5 #define ll long long
6 #define pi pair<int,int>
7 #define fi first
8 #define sc second
9 #define pb push_back
10 int cnt[maxn][2];
11 int a[maxn];
12 vectorE[maxn];
13 int ans,n;
14 int cntr,cntb;
15
16 void dfs(int u,int fa)
17 {
18 if(a[u]==1) cnt[u][1]++;
19 if(a[u]==2) cnt[u][0]++;
20 for(auto &v:E[u])
21 {
22 if(v==fa) continue;
23 dfs(v,u);
24 cnt[u][0]+=cnt[v][0];
25 cnt[u][1]+=cnt[v][1];
26 if(cnt[v][1]==cntr&&cnt[v][0]==0)
27 ans++;
28 if(cnt[v][0]==cntb&&cnt[v][1]==0)
29 ans++;
30 }
31 }
32
33
34 int main()
35 {
36 ios::sync_with_stdio(0);
37 cin.tie(0);
38 cin>>n;
39 for(int i=1;i<=n;i++) cin>>a[i],cntr+=a[i]==1,cntb+=a[i]==2;
40 for(int i=1;i<n;i++)
41 {
42 int x,y;
43 cin>>x>>y;
44 E[x].pb(y);
45 E[y].pb(x);
46 }
47 if(cntr&&cntb)
48 dfs(1,0);
49 else
50 ans=n-1;
51 cout<<ans<<'\n';
52
53
54
55
56
57 }