Ağaclar
Ağaclar alqoritmlərdə əsas verilən strukturlarından biridir və müxtəlif məsələlərdə tez-tez rast gəlinir.
Ağac — əlaqəli, dövrəsiz, istiqamətsiz qrafdır.
Bir G = (V, E) qrafı aşağıdakı xüsusiyyətləri ödəyirsə, ona ağac deyilir:
Əlaqəli — qrafdakı istənilən iki zirvə arasında yol mövcuddur.
Dövrəsiz — qraf heç bir dövr (cycle) ehtiva etmir.
zirvəli ağacda həmişə dəqiq olaraq n - 1 kənar (edge) olur.
Ağacın Əsas Xüsusiyyətləri
1. Əlaqəlilik və Yolların Təkliyi
Ağacda istənilən iki zirvə arasında unikal (tək) yol mövcuddur.
2. Kənarların Sayı
Hər hansı ağac üçün:
3. Dövr yoxdur
Ağaca əlavə edilən istənilən kənar mütləq dövr yaradır.
4. Kök (kök verilmiş ağac üçün)
Əgər bir zirvə kök kimi seçilərsə, ağac kökdən övladlara doğru istiqamətlənmiş olur. Bu, rekursiv keçidlərdə və alqoritmlərdə (, və s.) istifadə olunur.
5. Alt ağaclar
Hər hansı zirvə və onun nəslindən olan bütün zirvələr alt ağac yaradır. Alt ağac özü də ağacdır.
6. Yarpaqlar
Heç bir övladı olmayan (kök verilmiş ağacda) zirvələrə yarpaq deyilir.
7. Dərinlik və Hündürlük
Dərinlik — kökdən həmin zirvəyə olan məsafə.
Hündürlük — ağacdakı maksimum dərinlik.
8. Ağacın Mərkəzi
Mərkəz — bütün digər zirvələrə qədər olan maksimal məsafəni minimallaşdıran zirvə (və ya bitişik zirvələr cütü)dir.
Ağacın Alternativ Tərifləri
Ağac üçün aşağıdakı təriflər bir-birinə ekvivalentdir və müxtəlif kontekstlərdə istifadə oluna bilər:
Hər hansı bir kənarın silinməsi ilə qraf əlaqəsini itirən dövrəsiz qraf.
zirvəsi və n - 1 kənarı olan əlaqəli qraf.
n - 1 kənarı olan və dəqiq bir komponentdən ibarət dövrəsiz qraf.
Ağacların Koddakı Təsviri
Məsələnin növündən və ağacın tipindən (ümumi, binar, kök verilmiş və s.) asılı olaraq müxtəlif verilən strukturlarından istifadə olunur:
1. Qonşuluq siyahısı (Adjacency Lists)
Bu yanaşma yarışma tipli məsələlərdə və istiqamətli/istiqamətsiz ağaclarla işləyərkən çox istifadə olunur.
int n;
vector<vector<int>> tree(n); // n zirvəli ağac
// u və v zirvələri arasında kənar əlavə etmək
tree[u].push_back(v);
tree[v].push_back(u); // istiqamətsiz ağac üçün2. Valideyn massivi (Parent Array)
Çox yığcam təmsil formasıdır, xüsusilə ağac artıq qurulmuşdursa istifadə olunur.
vector<int> parent(n); // parent[i] --- i zirvəsinin valideyni
// əgər i kökdürsə, adətən parent[i] = -1 və ya 0 seçilir3. Göstəricilər / Strukturlar (OOP üslubu)
Xüsusilə binar ağaclar, trie-lər, dekoratorlar qurarkən Python/Java/C++ dillərində obyekt-yönlü proqramlaşdırma ilə istifadə olunur.
Binar ağac:
struct Node
{
int val;
Node* left;
Node* right;
Node(int v) : val(v), left(nullptr), right(nullptr) {}
};Ümumi ağac:
struct Node
{
int val;
vector<Node*> children;
Node(int v) : val(v) {}
};Döngüsüz və çoxlu kənarları olmayan əlaqəli istiqamətsiz qraf verilir. Qrafdan bəzi kənarları silmək icazəlidir. Məqsəd — nəticədə ağac əldə etməkdir.
Giriş. Birinci sətirdə iki tam ədəd — qrafın zirvələrinin sayı n~(1 \le n \le 100) və kənarlarının sayı verilir. Növbəti sətirdə hər biri bir kənarı ifadə edən iki tam ədəd verilir. Qrafın əlaqəli olduğu zəmanət verilir.
Çıxış. n - 1 ədəd kənar çap et — bu kənarlar ağacı təşkil etməlidir. Kənarların sırası önəmli deyil.

4 4
1 2
2 3
3 4
4 11 2
2 3
3 4Sizə tsiklsiz sadə qoşulmuş qraf – bir ağac verilir.
Tapşırıq ondan ibarətdir ki, maksimum neçə kənarı silmək olar ki, nəticədə alınan meşədə (forest) hər bir əlaqəli komponent cüt sayda zirvədən ibarət olsun.
Məsələn, aşağıda göstərilən zirvəli ağacdan maksimum kənar silmək olar ki, alınan meşədə bütün komponentlər cüt ölçülü olsun.

Giriş. Birinci sətrdə iki tam ədəd n~(2 \le n \le 100,~n cütdür və — ağacdakı zirvə və kənarların sayı verilir. Sonrakı sətrin hər birində iki tam ədəd — ağacdakı kənarları təşkil edən zirvələr verilir. Ağacın kökü -ci zirvədir.
Çıxış. Cüt komponentlərdən ibarət meşə almaq üçün silinə biləcək maksimum kənarların sayını çap edin.

10 9
2 1
3 1
4 3
5 2
6 1
7 2
8 6
9 8
10 82Nümunə
Nümunədə verilmiş ağacı nəzərdən keçirək. Hər bir zirvənin yanında, həmin zirvənin kök olduğu alt ağacın ölçüsü qeyd olunub. Zirvələr və -nın alt ağacları cüt sayda zirvəyə malikdir. Zirvə kök olduğundan və onu valideynə birləşdirən kənar olmadığından, və kənarlarını silirik.
Ağac cüt sayda zirvəsi olan əlaqəli komponentə bölünüb.
Şirkətin strukturu verilir. Hər bir işçi üçün onun tabeliyində olan işçilərin sayını hesablayın.
Giriş. Birinci sətrdə n~(1 \le n \le 2 \cdot 10^5) — işçilərin sayı verilir. İşçilər , , ..., kimi nömrələnib və -ci işçi şirkətin baş direktoru sayılır.
Sonrakı sətrdə n - 1 tam ədəd verilir: -ci, -cü, ..., -ci işçilərin hər biri üçün onların birbaşa rəhbərinin nömrəsi verilir.
Çıxış. tam ədəd çap edin: , , ..., -ci işçilərin hər biri üçün onun tabeliyində olan işçilərin sayı.

5
1 1 2 34 1 1 0 0qovşaqdan ibarət bir ağac verilir.
Ağacın diametri — iki qovşaq arasında olan maksimum məsafədir. Verilmiş ağacın diametrini tapın.
Giriş. Birinci sətirdə bir tam ədəd n~(1 \le n \le 2 \cdot 10^5) — ağacdakı qovşaqların sayı verilir. Qovşaqlar -dən -ə qədər nömrələnib.
Sonrakı n - 1 sətirin hər biri bir kənarı təsvir edir və və b~(1 \le a, b \le n) ədədlərindən ibarətdir, bu da və qovşaqları arasında bir kənarın olduğunu bildirir.
Çıxış. Bir tam ədəd çap edin — ağacın diametri.

5
1 2
1 3
3 4
3 53zirvədən ibarət bir ağac verilir.
Hər bir zirvə üçün digər zirvələrə olan maksimal məsafəni tapın.
Giriş. İlk sətirdə bir tam ədəd n~(1 \le n \le 2 \cdot 10^5) — ağacdakı zirvələrin sayı verilir. Zirvələr -dən -ə kimi nömrələnmişdir.
Növbəti n - 1 sətrdə ağacdakı kənarlar təsvir olunur: hər sətrdə iki tam ədəd və b~(1 \le a, b \le n) verilir, bu da və zirvələri arasında bir kənar olduğunu göstərir.
Çıxış. ədəd çap edin. Hər bir -dən -ə qədər zirvə üçün, həmin zirvədən digər zirvələrə olan maksimal məsafəni çap edin.

5
1 2
1 3
3 4
3 52 3 2 3 3Romanın valideynləri ona zirvəli və n - 1 qəlpəli istiqamətsiz, əlaqəli və çəkili qraf hədiyyə etdilər. Roman bu qrafda bütün zirvə cütlükləri arasındakı yolların ümumi uzunluğunu tapmaq istəyir. Yolun uzunluğu onun daxilində olan qəlpələrin çəkilərinin cəmi kimi müəyyən olunur. Çünki zirvəsindən zirvəsinə olan yol ilə zirvəsindən zirvəsinə olan yol eyni sayılır, Roman onları bir yol kimi nəzərə alır və fərqləndirmir.
Giriş. İlk sətirdə bir tam ədəd n~(2 \le n \le 10^5) — qrafdakı zirvələrin sayı verilir.
Növbəti n - 1 sətrin hər birində üç tam ədəd verilir: bir qəlpə ilə birləşdirilmiş iki zirvənin nömrələri (zirvələr -dən -ə qədər nömrələnmişdir) və həmin qəlpənin çəkisi.
Çıxış. Bütün fərqli zirvə cütləri arasında olan yolların ümumi uzunluğunu 10^9-a görə modul ilə verin.

3
1 2 1
1 3 386
1 2 5
1 3 1
2 4 2
2 5 4
2 6 390qovşaqdan ibarət köklü bir ağac verilir. Hər bir qovşaq müxtəlif rəngdən biri ilə rənglənib. Hər bir qovşağı üçün, həmin qovşaqda köklənmiş altqrafda neçə müxtəlif rəngin olduğunu müəyyənləşdirin.
Giriş. İlk sətirdə bir tam ədəd n~(1 \le n \le 10^6) verilir. Növbəti sətir ağacın qovşaqlarını təsvir edir. -ci sətirdə iki tam ədəd p_i və c_i verilir, burada p_i — -ci qovşağın valideyni, c_i isə onun rəngidir (1 \le c_i \le n). Ağacın kökü üçün p_i = 0.
Çıxış. tam ədəd çap edin — -dən -ə qədər hər bir qovşaq üçün, onun altqrafında neçə müxtəlif rəngin olduğunu göstərin.

5
2 1
3 2
0 3
3 3
2 11 2 3 1 1Mançester və Liverpul sakinləri uzun və yorucu iş həftəsindən sonra istirahət üçün meşəyə yollanırlar. Orada onlar təpədən ibarət olan və hər təpəsi mümkün rəngdən biri ilə boyanmış unikal bir ağacla qarşılaşırlar.
Darixmamaq üçün, onlar məntiqi bacarıqlarını sınamaq qərarına gəlirlər. Ağacın kökü təpəsidir. Hər bir təpə üçün, iştirakçılar eyni rəngə malik olan ən yaxın əcdadı tapmağa çalışırlar.
Giriş. Birinci sətdə iki tam ədəd və c~(1 \le n, c \le 10^5) — ağacdakı təpələrin və mümkün rənglərin sayı verilir.
İkinci sət n - 1 ədəddən ibarətdir: bunların -cisi (i + 1)-ci təpənin valideynini göstərir.
Üçüncü sət ədəddən ibarətdir — təpələrin rəngləri. Hər rəng ilə arasında olan bir tam ədəddir.
Çıxış. Bir sətrə tam ədəd yazın: hər bir təpə üçün, onunla eyni rəngə malik olan ən yaxın əcdadın nömrəsini çıxışa verin. Əgər belə bir təpə yoxdursa, çıxışa yazın.
5 4
1 1 3 3
1 4 2 1 2-1 -1 -1 1 3Boş vaxtlarında Farmer John öz video paylaşım platforması olan MooTube-u yaratdı. MooTube-da onun inəkləri videolar çəkə, paylaşa və kəşf edə bilərlər. İndiyə qədər inəklər video yükləmişlər, və bu videolar -dən -ə qədər nömrələnmişdir.
Lakin Farmer John inəklərinə yeni videolar tapmaqda necə kömək edəcəyini tam başa düşmür. O, hər video üçün "tövsiyə olunan videolar" siyahısı hazırlamaq istəyir — bu siyahı baxılmış videolara bənzərlik əsasında hazırlanacaq.
İki video arasında nə qədər bənzərlik olduğunu müəyyən etmək üçün John uyğunluq metrikası təqdim edir. O, əllə n - 1 video cütünü qiymətləndirir və hər cütə uyğunluq dəyəri təyin edir. Bu cütlərdən istifadə edərək, John videoların hər birini qrafın təpəsi kimi qəbul edib və uyğunluq dəyərləri olan kənarlarla birləşdirir.
Rahatlıq üçün John bu n - 1 cütü elə seçir ki, istənilən iki video arasında yalnız bir yol mövcud olsun — yəni, video şəbəkəsi bir ağac təşkil edir.
O, iki video arasındakı uyğunluğu, onları birləşdirən yol boyunca olan kənarların minimum uyğunluğu kimi müəyyənləşdirir.
İndi Farmer John dəyərini seçmək istəyir ki, MooTube-da olan istənilən video üçün uyğunluğu azı olan bütün digər videolar tövsiyə kimi göstərilsin. Lakin o qorxur ki, çoxlu tövsiyələr inəklərin süd verməsini dayandıra bilər, buna görə də o, müxtəlif dəyərləri üçün neçə video tövsiyə ediləcəyini dəqiq hesablamaq istəyir.
Farmer John sizə müraciət edir: sizə bir neçə sorğu verilir, hər biri dəyəri və bir video nömrəsindən ibarətdir. Hər sorğu üçün, əgər tövsiyə üçün tələb olunan minimum uyğunluq k = k_i olsa, videoya neçə digər video tövsiyə olunacağını müəyyənləşdirməlisiniz.
Giriş. Birinci sətirdə iki tam ədəd və q~(1 \le n, q \le 5000) — video sayı və sorğuların sayı verilir.
Növbəti n − 1 sətirdə Farmer John tərəfindən qiymətləndirilmiş video cütləri verilir. Hər sətirdə üç tam ədəd p_i, q_i və r_i~(1 \le p_i, q_i \le n, 1 \le r_i \le 10^9), bu o deməkdir ki, p_i və q_i videoları uyğunluq dəyəri r_i olan kənarla birləşdirilmişdir.
Sonra isə sorğu verilir. -ci sorğuda iki tam ədəd k_i və v_i~(1 \le k_i \le 10^9, 1 \le v_i \le n) verilir — bu o deməkdir ki, Farmer John soruşur: əgər minimum uyğunluq k = k_i olarsa, v_i videosu üçün neçə video tövsiyə ediləcək?
Çıxış. sətir çap edin. -ci sətirdə Farmer John-un -ci sorğusunun cavabını verin.

Nümunə. Farmer John videolar arasında aşağıdakı əlaqələri qurmuşdur:
Video və video arasında uyğunluq -dür,
Video və video arasında uyğunluq -dir,
Video və video arasında uyğunluq -dür.
Bu məlumatlara əsasən, digər video cütləri arasındakı uyğunluqları hesablaya bilərik:
Video və video : uyğunluq = min(3, 2) = 2,
Video və video : uyğunluq = min(3, 4) = 3,
Video və video : uyğunluq = min(2, 4) = 2.
İndi isə aşağıdakı sorğular üçün hansı videoların tövsiyə olunacağını nəzərdən keçirək:
Video üçün k = 1 olduqda, videolar , və tövsiyə olunacaq.
Video üçün k = 3 olduqda, videolar və tövsiyə olunacaq.
Video üçün k = 4 olduqda, heç bir video tövsiyə olunmayacaq.
4 3
1 2 3
2 3 2
2 4 4
1 2
4 1
3 13
0
2təpəli ağac verilib. Ağacın kənarlarının çəkiləri yalnız və ya ola bilər. Bütün təpə cütlükləri üçün onların XOR cəmini tapmaq tələb olunur. Bütün bu cəmlərin ümumi cəmini hesablayın.
Giriş. Birinci sətrdə n~(2 \le n \le 10^5) — qrafın təpələrinin sayı verilir. Sonrakı n - 1 sətrdə kənarların təsviri verilir. Hər sətrdə tam ədəd verilir: kənarla birləşən təpələrin nömrələri (təpələr -dən -ə kimi nömrələnib) və bu kənarın çəkisi ( və ya ).
Çıxış. Bütün təpə cütləri üçün XOR cəmlərinin ümumi cəmini çap edin.

5
1 2 1
2 3 1
2 4 0
4 5 16-dən -ə qədər nömrələnmiş təpədən ibarət bir ağac verilir. Ağacdakı -ci kənar a_i və b_i təpələrini birləşdirir. -ci təpə c_i rəngi ilə boyanıb (bu məsələdə rənglər tam ədədlərlə təmsil olunur).
Bir təpə yaxşı hesab olunur əgər təpə -dən təpə -ə qədər olan ən qısa yol üzərində -dən başqa elə bir təpə yoxdur ki, ilə eyni rəngdə olsun.
Bütün yaxşı təpələri tapın.
Giriş. Birinci sətirdə bir tam ədəd n~(2 \le n \le 10^5) — təpələrin sayı verilir.
İkinci sətirdə tam ədəd verilir — təpələrin rəngləri: c_1, c_2, \dots, c_n~(1 \le c_i \le 10^5).
Növbəti n - 1 sətrin hər birində iki tam ədəd a_i və b_i~(1 \le a_i, b_i \le n) verilir — ağacdakı kənarlar.
Çıxış. Bütün yaxşı təpələrin nömrələrini artan sıra ilə, hər sətrə biri olmaqla çap edin.

6
2 7 1 8 2 8
1 2
3 6
3 2
4 3
2 51
2
3
4
610
3 1 4 1 5 9 2 6 5 3
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 101
2
3
5
6
7
8-dən -ə qədər nömrələnmiş təpə və n - 1 kənardan ibarət bir ağac verilir. -ci kənar a_i və b_i təpələrini birləşdirir.
Sizin ixtiyarınızda rəng var. Ağacın hər təpəsini bu rəngdən biri ilə rəngləməlisiniz, aşağıdakı şərti ödəməklə:
Əgər iki fərqli təpə və arasında olan məsafə və ya daha azdırsa, o zaman və fərqli rənglərə malik olmalıdır.
Ağacı bu şərti pozmadan neçə fərqli şəkildə rəngləmək olar? Cavabı 10^9 + 7 modulu üzrə hesablayın.
Giriş. Birinci sətirdə iki tam ədəd və k~(1 \le n, k \le 10^5) verilir. Növbəti n - 1 sətrin hər birində iki tam ədəd a_i və b_i~(1 \le a_i, b_i \le n) — ağacın kənarları verilir.
Çıxış. Ağacı verilmiş qayda ilə neçə müxtəlif şəkildə rəngləmək olar? Cavabı 10^9 + 7 modulu üzrə çap edin.
4 3
1 2
2 3
3 465 4
1 2
1 3
1 4
4 548Ölkədə şəhər və n - 1 ikitərəfli yol var. Elədir ki, yalnız bu yollardan istifadə etməklə istənilən şəhərdən digərinə getmək mümkündür. Şəhərlər -dən -ə qədər nömrələnmişdir.
Başlanğıcda, bütün yollar pis vəziyyətdə hesab olunur, lakin hökumət bu yollardan bəzilərini yaxşılaşdırmağı planlaşdırır. Vətəndaşlar təkmilləşdirmələrdən yalnız o zaman razı qalacaqlar ki, paytaxtdan (yəni -ci şəhərdən) istənilən digər şəhərə gedən yolda ən çox bir pis vəziyyətdə yol olsun.
Tələbi ödəmək üçün yolların bəzilərini yaxşılaşdırmağın neçə mümkün üsulu olduğunu müəyyən edin. Cavab çox böyük ola biləcəyindən onu 10^9 + 7 modulu üzrə çap edin.
Giriş. Birinci sətirdə bir tam ədəd n~(2 \le n \le 2 \cdot 10^5) — ölkədəki şəhərlərin sayı verilir. İkinci sətirdə n - 1 ədəd p_2, p_3, p_4, \cdots, p_n~(1 \le p_i \le i - 1) ədədləri verilir. Burada p_i ədədi p_i və şəhərləri arasında bir yolun olduğunu bildirir.
Çıxış. Yolları yaxşılaşdırmağın tələbə uyğun gələn bütün mümkün yollarının sayını 10^9 + 7 modulu üzrə çap edin.

3
1 146
1 2 2 1 515Aydın yay günlərində Nyuşa təmiz havada kəpənək tutmağı sevir. Amma bu gün o, xüsusilə hiyləgər bir kəpənəklə qarşılaşdı — kəpənək labirintə uçaraq orada gizlənməyə çalışdı.
Labirint otaqdan ibarətdir və bu otaqların bəziləri dəhlizlərlə birləşdirilib. Məlumdur ki, istənilən iki otaq arasında yalnız bir sadə yol mövcuddur və bu yol yalnız dəhlizlərdən keçir. Başqa sözlə, labirint təpə və n - 1 qırıqdan ibarət bir ağacdır.
Labirintin girişi -ci otaqdadır. Bir otaq yalnız bir başqa otaqla birləşibsə və bu otaq kök deyilsə (yəni -ci otaq deyilsə), o zaman bu otaq yarpaq hesab olunur. Hər yarpaq otaqda labirintdən çıxış mövcuddur. Kəpənək öz uçuşuna -ci otaqdan başlayır və hansısa çıxışa doğru hərəkət edir. O, sabit sürətlə hərəkət edir, heç vaxt geri dönmür və hər dəqiqədə bir dəhlizdən keçərək qonşu otağa keçir. Bütün dəhlizlər eyni uzunluqdadır.
Kəpənəyi tutmaq üçün Nyuşa dostlarının köməyinə müraciət etmək qərarına gəldi. Başlanğıcda hər biri istənilən çıxışı olan otaqda yerləşə bilər. Kəpənək çıxışlardan birinə doğru hərəkət etməyə başladığı anda dostlar da dərhal hərəkətə keçə bilərlər. Onlar da kəpənəklə eyni sürətlə hərəkət edirlər. Əgər onlardan biri kəpənəklə eyni otaqda və ya bir dəhlizin ortasında qarşılaşarsa, kəpənək tutulmuş sayılır. Əgər kəpənək heç bir dostla qarşılaşmadan çıxışa çatsa, azad olur.
Nyuşaya kömək edin — istənilən çıxış seçimi üçün kəpənəyin tutulacağına zəmanət verən minimum dost sayını müəyyən edin.
Giriş. İlk sətirdə bir tam ədəd n~(2 \le n \le 200000) — labirintdəki otaqların sayı verilir.
Növbəti n - 1 sətirin hər birində iki tam ədəd və v~(1 \le u, v \le n, u \ne v) verilir — dəhlizlə birləşdirilmiş otaqların nömrələri.
Zəmanət verilir ki, verilmiş dəhliz sistemi bir ağac təşkil edir.
Çıxış. Tək bir tam ədəd çap edin — kəpənəyin tutulmasına zəmanət vermək üçün lazım olan minimum dostların sayı.
3
1 2
1 324
1 2
2 3
2 41Kefa ilk böyük maaşını qeyd etmək üçün restorana getmək qərarına gəldi.
O, qeyri-adi bir parkın yaxınlığında yaşayır. Park təpədən ibarət köklü bir ağacdır və kök -ci təpədir. Kefa-nın evi də -ci təpədə yerləşir. Təəssüf ki, park pişiklərlə doludur və Kefa artıq hansı təpələrdə pişiklərin olduğunu müəyyən edib.
Parkın yarpaq təpələrində restoranlar yerləşir. Kefa restoran seçmək istəyir, lakin o, pişiklərdən çox qorxur. Buna görə də, əgər evindən restorana qədər yolda -dən çox ardıcıl pişik olan təpə varsa, o, həmin restorana getməyəcək.
Sizin vəzifəniz — Kefa-nın təhlükəsiz şəkildə gedə biləcəyi restoranların sayını hesablamaqdır.
Giriş. Birinci sətrdə iki tam ədəd verilir: və m~(2 \le n \le 10^5, 1 \le m \le n) — ağacdakı təpələrin sayı və Kefa-nın dözə biləcəyi maksimum ardıcıl pişik olan təpə sayı.
İkinci sətrdə tam ədəd verilir: a_1, a_2, ..., a_n, burada hər bir a_i ya (təpədə pişik yoxdur), ya da (təpədə pişik var) olur.
Sonrakı n - 1 sətirdə ağacın qıraqları x_i~y_i~(1 \le x_i, y_i \le n, x_i \ne y_i) formatında verilir, burada x_i və y_i bir qıraqla birləşdirilmiş təpələrdir.
Verilən qıraq dəstinin ağac yaratdığına zəmanət verilir.
Çıxış. Kefa-nın evindən başlayaraq yolu boyunca -dən artıq ardıcıl pişik olmayan yarpaq təpələrə çatmaq imkanlarının sayını çap edin.

7 1
1 1 0 0 0 0 1
1 2
1 3
2 4
2 5
3 6
3 728 2
1 1 0 1 0 1 0 1
1 2
2 3
2 5
2 6
3 4
6 7
6 82-dən -ə qədər nömrələnmiş təpəli bir ağac verilir. təpəsi kök kimi qəbul olunur. Hər iki təpə arasında yalnız bir sadə yol mövcuddur.
d(i, j) — təpəsindən təpəsinə qədər olan yoldakı qıraq (kənar) sayıdır.
Elə cütlüklərinin sayını tapın ki, aşağıdakı bərabərlik ödənmiş olsun:
Giriş. Birinci sətirdə bir tam ədəd n~(1 \le n \le 10^5) — ağacdakı təpələrin sayı verilir.
Sonrakı n - 1 sətrin hər birində ağacdakı qıraqlar təsvir olunur: hər biri iki tam ədəddən ibarət olan cütü.
Çıxış. d(i, j) = d(i, 1) - d(j, 1) bərabərliyini ödəyən cütlüklərinin sayını çap et.
5
1 2
2 3
2 4
4 513İkiyollu bir ağac verilib, yəni təpə və n - 1 qıraqlı, dövrə olmayan və əlaqəli qraf. Hər bir təpənin dərəcəsi maksimum -dür. Kök təpə -dir və onun dərəcəsi -dən artıq deyil.
Təəssüf ki, kök təpəsi yoluxub. Aşağıdakı proses dəfə təkrarlanır:
Hüseyn hər dövrədə ya hələ yoluxmamış (və silinməmiş) bir təpəni seçib onu və ona birləşən bütün qıraqları silir, ya da heç bir şey etmir.
Bundan sonra yoluxma prosesi baş verir: artıq yoluxmuş təpələrə birbaşa bağlı olan bütün təpələr yoluxur (əvvəlki yoluxmuşlar yoluxmuş qalır).
Hüseynə maksimum neçə təpəni yoluxmadan xilas edə biləcəyini tapmağa kömək et (qeyd edək ki, silinmiş təpələr xilas olunmuş sayılmır).
Giriş. İlk sətirdə təpələrin sayı n~(2 \le n \le 3 \cdot 10^5) verilir.
Növbəti n - 1 sətirdə u_i və v_i~(1 \le u_i, v_i \le n) cütlükləri verilir — bu, ağacdakı bir qırağı təsvir edir.
Zəmanət verilir ki, verilmiş qraf kökü olan iki yollu ağacdır.
Çıxış. Xilas edilə biləcək maksimum təpələrin sayını verin.
4
1 2
2 3
2 427
1 2
1 5
2 3
2 4
5 6
5 72
Şərhlər5