zoukankan      html  css  js  c++  java
  • 自闭的D7

    先是一道**题然后我死了啊。

    A:

    哇人人都会我不会系列。 我们可以运用逆向思维啊,把它转化成若干个人从点1进来, 然后我们考虑深度 dep,用 num[dep] 表示深度大于等于这个点的有多少个,

    这样子我们会发现  对于每一个 dep,答案就是 dep+num[dep]-1,因为第一个走过来需要dep步,后面每一个1步就够了,答案就是所有dep取max。

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 const int N = 1e5+5;
     4 int a[N],n,x,y;
     5 vector<int>g[N];
     6 int f[N],dep[N];
     7 void dfs(int v,int fa,int d){
     8     dep[v] = d;
     9     for(auto u:g[v]){
    10         if(u==fa)
    11             continue;
    12         dfs(u,v,d+1);
    13     }
    14 }
    15 int main(){
    16     ios::sync_with_stdio(false);
    17     cin>>n;
    18     for(int i=1;i<=n;i++) cin>>a[i];
    19     for(int i=1;i<n;i++){
    20         cin>>x>>y;
    21         g[x].push_back(y);
    22         g[y].push_back(x);
    23     }
    24     dfs(1,1,0);
    25     for(int i=1;i<=n;i++){
    26         if(a[i])
    27             f[dep[i]]++;
    28     }
    29     for(int i=n;i>=1;i--){
    30         f[i]+=f[i+1];
    31     }
    32     int mx = 0;
    33     for(int i=1;i<=n;i++) {
    34         if(a[i])
    35             mx = max(f[dep[i]]+dep[i]-1,mx);
    36     }
    37     cout<<mx<<endl;
    38 }
    39 /**
    40 5
    41 0 1 0 1 0
    42 1 2
    43 1 3
    44 3 4
    45 4 5
    46  */
    View Code

    E:

    哇怎么是个人都会啊...好像自从我拿到衣服之后就开始疯狂降智了,,,不过这几天同步赛神仙变多了...话说我的T恤为什么还没来?

    我觉得好难啊...看的别人的题解

    https://blog.csdn.net/CaprYang/article/details/86659607

    这个我觉得还是很好理解的...主要是代码可读性很强啊...雾

    要记住是 从set里被删除才算一次插入才会标记,所以不能用pq,当然也有用优先队列的,,,还没看懂就是了...

    F:哇我听课听了些卜啊,今晚再补叭

    J:我不配与你们同台竞技,我退役了.哇这谁顶得住啊自闭了,不会。

  • 相关阅读:
    质量属性的六个常见属性场景——以《淘宝网》为例
    软件架构师如何工作——架构漫谈读后感
    机器学习——决策树
    使用八股搭建手写数据集神经网络
    大三寒假学习进度笔记(三十)
    大三寒假学习进度笔记(二十九)
    大三寒假学习进度笔记(二十八)
    大三寒假学习进度笔记(二十七)—— 强化学习
    含e最多的单词
    数据挖掘复习1
  • 原文地址:https://www.cnblogs.com/MXang/p/10326056.html
Copyright © 2011-2022 走看看