[题解]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;
}
相关推荐
Dream it possible!12 小时前
LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等)
算法·leetcode·面试·动态规划
心抵鹊12 小时前
算法之双指针系列(一)
算法·leetcode
十二12 小时前
【洛谷题解】P1083 [NOIP 2012 提高组] 借教室(二分答案 + 差分)
数据结构·c++·算法·蓝桥杯
小此方13 小时前
[算法实战论:动态规划]回文串问题的dp解法,回文串问题的母题,以及以此为基础的派生题
算法·动态规划
Pniubi14 小时前
力扣560.和为k的子数组
算法·leetcode·职场和发展
D e re k ZH14 小时前
C++ 从零入门(一):基础语法与程序结构
数据结构·c++·算法
Pniubi15 小时前
力扣438.找到字符串中所有字母异位词
算法·leetcode·职场和发展
東隅已逝,桑榆非晚17 小时前
算法6. 双指针法-查找总价格为目标的两个商品
c++·学习·算法
Eyfcom17 小时前
〖物联网终端实战 01〗UWB 室内高精度定位:仓储 AGV 与人员的厘米级轨迹追踪
物联网·算法·物流系统·快递系统·跨境物流快递系统·物联网终端实战
bro_Java66618 小时前
《排序的底层逻辑:比较、交换与分治》
java·算法·排序算法