PAT (Advanced Level) 甲級 1004 Counting Leaves


點此查看所有題目集


A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child.

?

Input Specification:

Each input file contains one test case. Each case starts with a line containing?0<N<100, the number of nodes in a tree, and?M?(<N), the number of non-leaf nodes. Then?M?lines follow, each in the format:

ID K ID[1] ID[2] ... ID[K]

where?ID?is a two-digit number representing a given non-leaf node,?K?is the number of its children, followed by a sequence of two-digit?ID's of its children. For the sake of simplicity, let us fix the root ID to be?01.

The input ends with?N?being 0. That case must NOT be processed.

?

Output Specification:

For each test case, you are supposed to count those family members who have no child?for every seniority level?starting from the root. The numbers must be printed in a line, separated by a space, and there must be no extra space at the end of each line.

The sample case represents a tree with only 2 nodes, where?01?is the root and?02?is its only child. Hence on the root?01?level, there is?0?leaf node; and on the next level, there is?1?leaf node. Then we should output?0 1?in a line.

?這個作為一個30的題,感覺也是很簡單的。題目大意就是給出每個非葉子節點的所有孩子,然后求出該樹的每一層的葉子節點。已知根節點為1。我處理的思路為先存下每個節點的孩子。然后遍歷的時候,尋找出每一層的節點,如果該節點沒有孩子了,就說明為葉子節點。這樣循環遍歷就能求出所有的節點。

#include<bits/stdc++.h>
using namespace std;const int maxn = 106;//建一個樹 求每一層的葉子節點個數 01為根節點map<int,vector<int> >node;map<int,vector<int> >vc;//表示前幾層 每層的節點
int ans[maxn];
int main()
{int N,M;cin >> N >> M;for(int i = 0;i<M;i++){int rt,k;cin >> rt >> k;for(int j = 0;j<k;j++){int x;cin >> x;node[rt].push_back(x);}}vc[1].push_back(1);//表示根節點只有1 也是第一層int lim = 0;for(int i = 2;i<100;i++){for(int j = 0;j<vc[i-1].size();j++)//拿出上一層節點{int nw = vc[i-1][j];for(int k = 0;k<node[nw].size();k++){int ci = node[nw][k];vc[i].push_back(ci);if(node[ci].size()==0)ans[i]++;//當層存在空姐點}}if(vc[i].size()==ans[i]){lim = i;break;}}if(N==0);else if(N==1){cout << 1;}else {cout << 0;for(int i = 2;i<=lim;i++){cout<<" " << ans[i];}}return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/38893.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/38893.shtml
英文地址,請注明出處:http://en.pswp.cn/news/38893.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何在iPhone手機上修改手機定位和模擬導航?

如何在iPhone手機上修改手機定位和模擬導航&#xff1f; English Location Simulator&#xff08;定位模擬工具&#xff09; 是一款功能強大的 macOS 應用&#xff0c;專為 iPhone 用戶設計&#xff0c;旨在修改手機定位并提供逼真的模擬導航體驗。無論是為了保護隱私、測試位…

Angular 獨立組件入門

Angular 獨立組件入門 如果你正在學習 Angular&#xff0c;那么你可能已經聽說過獨立組件&#xff08;Component&#xff09;。顧名思義&#xff0c;獨立組件就是可以獨立使用和管理的組件&#xff0c;它們能夠被包含在其他組件中或被其他組件引用。 在本文中&#xff0c;我們…

【Unity腳本開源】記錄鼠標按下的位置和移動的距離來進行物體的旋轉,并在鼠標釋放后將物體恢復到初始旋轉位置

??作者&#xff1a;白日參商 &#x1f935;?♂?個人主頁&#xff1a;白日參商主頁 ??堅持分析平時學習到的項目以及學習到的軟件開發知識&#xff0c;和大家一起努力呀&#xff01;&#xff01;&#xff01; &#x1f388;&#x1f388;加油&#xff01; 加油&#xff01…

go-安裝部署

一、安裝go 詳細安裝方式可以查看官網 # 下載 wget https://golang.google.cn/dl/go1.21.0.linux-amd64.tar.gz # 解壓縮 tar -xzf go1.21.0.linux-amd64.tar.gz # 遷移目錄 mv go /usr/local # 配置環境變量 export PATH$PATH:/usr/local/go/bin # 檢查go的版本 go version有…

Python中的字符串與字符編碼

Hello&#xff0c;這里是Token_w的博客&#xff0c;歡迎您的到來 今天文章講解的是Python中的字符串與字符編碼&#xff0c;其中有基礎的理論知識講解&#xff0c;也有實戰中的應用講解&#xff0c;希望對你有所幫助 整理不易&#xff0c;如對你有所幫助&#xff0c;希望能得到…

PDM/PLM系統建設

僅供學習使用&#xff0c;會隨時更新 工程機械跨生命周期數據管理系統 來源&#xff1a;清華大學 淺論企業PDM/PLM系統建設成功經驗 來源&#xff1a;e-works 作者&#xff1a;陳凡 https://articles.e-works.net.cn/pdm/article149572.htm 隨著“中國制造2025”強基工程戰略的…

張俊林:由ChatGPT反思大語言模型(LLM)的技術精要

轉自&#xff1a;https://mp.weixin.qq.com/s/eMrv15yOO0oYQ-o-wiuSyw 導讀&#xff1a;ChatGPT出現后驚喜或驚醒了很多人。驚喜是因為沒想到大型語言模型&#xff08;LLM,Large Language Model&#xff09;效果能好成這樣&#xff1b;驚醒是頓悟到我們對LLM的認知及發展理念&a…

Elisp之獲取PC電池狀態(二十八)

簡介&#xff1a; CSDN博客專家&#xff0c;專注Android/Linux系統&#xff0c;分享多mic語音方案、音視頻、編解碼等技術&#xff0c;與大家一起成長&#xff01; 優質專欄&#xff1a;Audio工程師進階系列【原創干貨持續更新中……】&#x1f680; 人生格言&#xff1a; 人生…

Linux學習筆記

grep -r "root" /var/log/messages #查找一個目錄下所有包含特定字符竄的文件 grep -r "root" /var/log/messages |wc -l #如何計算一個文本文件中某個單詞出現的次數&#xff1f; du -sh /var/log #如何統計一個目錄下所有文件和子目錄的總大小&#xff1…

博客摘錄「 佛祖保佑,永無bug——springboot啟動圖案的修改方法」2023年6月8日

挺有意思的。佛祖保佑永無BUG 神獸護體 代碼注釋(各種版本)_風流 少年的博客-CSDN博客

ArcGIS Pro 基礎安裝與配置介紹

ArcGIS Pro ArcGIS Pro作為ESRI面向新時代的GIS產品&#xff0c;它在原有的ArcGIS平臺上繼承了傳統桌面軟件&#xff08;ArcMap&#xff09;的強大的數據管理、制圖、空間分析等能力&#xff0c;還具有其獨有的特色功能&#xff0c;例如二三維融合、大數據、矢量切片制作及發布…

django中實現事務/django實現悲觀鎖樂觀鎖案例

django中實現事務的幾種方式 # 1 全局開啟事務---> 全局開啟事務&#xff0c;綁定的是http請求響應整個過程DATABASES {default: {#全局開啟事務&#xff0c;綁定的是http請求響應整個過程ATOMIC_REQUESTS: True, }}from django.db import transaction# 局部禁用事務trans…

Unity 鼠標控制 UI 放大、縮小、拖拽

文章目錄 1. 代碼2. 測試場景 1. 代碼 using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems;public class UIDragZoom : MonoBehaviour, IDragHandler, IScrollHandler {private Vector2 originalSize;private Vector2 originalPosition;private RectTr…

css3 瀑布流布局遇見截斷下一列展示后半截現象

css3 瀑布流布局遇見截斷下一列展示后半截現象 注&#xff1a;css3實現瀑布流布局簡直不要太香&#xff5e;&#xff5e;&#xff5e;&#xff5e;&#xff5e; 場景-在uniapp項目中 當瀑布流布局column-grap:10px 相鄰兩列之間的間隙為10px&#xff0c;column-count:2,2列展…

面試之快速學習C++11-完美轉發,nullptr, shared_ptr,unique_ptr,weak_ptr,shared_from_this

完美轉發及其實現 函數模版可以將自己的參數完美地轉發給內部調用的其他函數。所謂完美&#xff0c;即不僅能準確地轉發參數的值&#xff0c;還能保證被轉發參數的左右值屬性不變引用折疊&#xff1a;如果任一引用為左值引用&#xff0c;則結果為左值引用&#xff0c;否則為右…

在阿里云服務器上安裝Microsoft SharePoint 2016流程

本教程阿里云百科分享如何在阿里云ECS上搭建Microsoft SharePoint 2016。Microsoft SharePoint是Microsoft SharePoint Portal Server的簡稱。SharePoint Portal Server是一個門戶站點&#xff0c;使得企業能夠開發出智能的門戶站點。 目錄 背景信息 步驟一&#xff1a;添加…

【Leetcode 30天Pandas挑戰】學習記錄 下

題目列表&#xff1a; 數據統計:2082. The Number of Rich Customers1173. Immediate Food Delivery I1907. Count Salary Categories 數據分組1741. Find Total Time Spent by Each Employee511. Game Play Analysis I2356. Number of Unique Subjects Taught by Each Teacher…

無涯教程-Perl - setgrent函數

描述 此功能將枚舉設置(或重置)到組條目集的開頭。該函數應在第一次調用getgrent之前調用。 語法 以下是此函數的簡單語法- setgrent返回值 此函數不返回任何值。 例 以下是顯示其基本用法的示例代碼- #!/usr/bin/perl -wwhile( ($name,$passwd,$gid,$members)getgrent…

ide internal errors【bug】

ide internal errors【bug】 前言版權ide internal errors錯誤產生相關資源解決1解決2 設置虛擬內存最后 前言 2023-8-15 12:36:59 以下內容源自《【bug】》 僅供學習交流使用 版權 禁止其他平臺發布時刪除以下此話 本文首次發布于CSDN平臺 作者是CSDN日星月云 博客主頁是h…

C++模板的分離編譯問題

本文主要是了解一下為什么模板的定義和聲明不能分開&#xff0c;需要簡單了解一下編譯的四個階段。 一、理解編譯大致流程 整個編譯流程分為&#xff1a;預處理、編譯、匯編、鏈接&#xff0c;這里以源文件main.cpp文件為例。 預處理&#xff1a;對源文件進行宏替換、去注釋、…