java看源代码f3_剑指Java自研框架,决胜Spring源码

无论是Spring框架源码的学习,还是框架设计,入门门槛都太高,理解起来晦涩。课程想抓住这两个痛点,在自研框架和Spring框架的穿插讲解中让大家逐渐熟悉Spring框架的脉络。通过从0搭建一个较为完备的web框架来提升自己的框架设计能力,同时能够管中窥豹,去了解Spring框架的设计思路,再辅以通俗易懂的Spring核心模块源码的讲解,将课程门槛拉低,让大家通过学习本门课程后能够通过自己学习读懂Spring乃至其他框架的源码。

适合人群

1.在校学生

2.已工作的Java程序员

技术储备要求

1.有Java语言基本使用经验

2.熟悉Spring的基本知识

3.![]()![]()```

1 #include

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

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

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<

52

53

54

55

56

57 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值