[题解]2023CCPC黑龙江省赛 - Folder

  • 来源:F.Folder - Codeforces
  • 题意:给定由 n ( 1 ≤ n ≤ 1 0 5 ) n(1\le n\le 10^5) n(1≤n≤105)个结点组成的树,每次操作可将一棵子树接到其他结点上。求将树转换为一棵斜树的最小操作次数。
  • 关键词:思维(签到)
  • 题解:斜树中所有结点仅位于一侧子树,其仅有一个叶子节点。注意到根节点到叶子节点有且仅存在一条路径,因此每个叶子节点只需移动一次即可变为非叶子节点,最后仅保留一个叶子节点即可。故答案为叶子节点数-1。
  • 代码:
cpp 复制代码
#include<bits/stdc++.h>

using namespace std;
using ll=long long;
#define int ll
#define endl "\n"

void solve(){
    int n;cin>>n;
    vector<bool>leaf(n+1,1);
    for(int i=1;i<n;i++){
        int _;cin>>_;
        leaf[_]=0;
    }
    int cnt=0;
    for(int i=1;i<=n;i++){
        if(leaf[i]) cnt++;
    }
    cout<<cnt-1<<endl;
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0);
    int t=1;

    while(t--) solve();
    return 0;
}
相关推荐
不知天地为何吴女士1 小时前
Day32| 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
算法
小坏坏的大世界1 小时前
C++ STL常用容器总结(vector, deque, list, map, set)
c++·算法
励志要当大牛的小白菜4 小时前
ART配对软件使用
开发语言·c++·qt·算法
qq_513970444 小时前
力扣 hot100 Day56
算法·leetcode
PAK向日葵5 小时前
【算法导论】如何攻克一道Hard难度的LeetCode题?以「寻找两个正序数组的中位数」为例
c++·算法·面试
爱喝矿泉水的猛男7 小时前
非定长滑动窗口(持续更新)
算法·leetcode·职场和发展
YuTaoShao7 小时前
【LeetCode 热题 100】131. 分割回文串——回溯
java·算法·leetcode·深度优先
YouQian7727 小时前
Traffic Lights set的使用
算法
go54631584659 小时前
基于深度学习的食管癌右喉返神经旁淋巴结预测系统研究
图像处理·人工智能·深度学习·神经网络·算法
aramae9 小时前
大话数据结构之<队列>
c语言·开发语言·数据结构·算法