[题解]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;
}
相关推荐
沐苏瑶2 小时前
Java 搜索型数据结构全解:二叉搜索树、Map/Set 体系与哈希表
java·数据结构·算法
ZoeJoy83 小时前
算法筑基(二):搜索算法——从线性查找到图搜索,精准定位数据
算法·哈希算法·图搜索算法
Alicx.3 小时前
dfs由易到难
算法·蓝桥杯·宽度优先
_日拱一卒3 小时前
LeetCode:找到字符串中的所有字母异位词
算法·leetcode
云泽8084 小时前
深入 AVL 树:原理剖析、旋转算法与性能评估
数据结构·c++·算法
Wilber的技术分享4 小时前
【LeetCode高频手撕题 2】面试中常见的手撕算法题(小红书)
笔记·算法·leetcode·面试
邪神与厨二病4 小时前
Problem L. ZZUPC
c++·数学·算法·前缀和
梯度下降中6 小时前
LoRA原理精讲
人工智能·算法·机器学习
IronMurphy6 小时前
【算法三十一】46. 全排列
算法·leetcode·职场和发展
czlczl200209256 小时前
力扣1911. 最大交替子序列和
算法·leetcode·动态规划