#4229
Bujorel s-a apucat de pomicultură şi a însămânţat un arbore (graf conex aciclic) cu N noduri, fiecare nod având o culoare dată dintr-un interval [1, K]. Acum, după ce arborele a crescut, el doreşte să ştie, pentru fiecare culoare, suma distanţelor dintre toate perechile de noduri ale arborelui ce au culoarea respectivă. Distanţa dintre două noduri se defineşte ca fiind numărul de muchii de pe drumul dintre cele două noduri. Deoarece Bujorel a folosit foarte mult îngrăşământ la plantarea arborelui, acesta a crescut foarte mult şi voi trebuie să scrieţi un program care calculează suma distanţelor dintre nodurile cu aceeaşi culoare.
Lot Resita 2012
| Problema | kdist | Operații I/O |
tastatură/ecran
|
|---|---|---|---|
| Limita timp | 1 secunde | Limita memorie |
Total: 128 MB
/
Stivă 64 MB
|
| Id soluție | #63642254 | Utilizator | |
| Fișier | kdist.cpp | Dimensiune | 1.16 KB |
| Data încărcării | 12 Martie 2026, 12:25 | Scor/rezultat | Eroare de compilare |
kdist.cpp: In function 'void dfs(int, int)': kdist.cpp:12:5: error: reference to 'count' is ambiguous count[u][color[u]] = 1; ^ kdist.cpp:9:27: note: candidates are: std::vector<std::vector<long long int> > count vector<vector<long long>> count; ^ In file included from /usr/include/c++/4.8/algorithm:62:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:64, from kdist.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:4622:5: note: template<class _IIter, class _Tp> typename std::iterator_traits<_Iterator>::difference_type std::count(_IIter, _IIter, const _Tp&) count(_InputIterator __first, _InputIterator __last, const _Tp& __value) ^ kdist.cpp:17:24: error: reference to 'count' is ambiguous suma[c] += count[v][c] * (total_c[c] - count[v][c]); ^ kdist.cpp:9:27: note: candidates are: std::vector<std::vector<long long int> > count vector<vector<long long>> count; ^ In file included from /usr/include/c++/4.8/algorithm:62:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:64, from kdist.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:4622:5: note: template<class _IIter, class _Tp> typename std::iterator_traits<_Iterator>::difference_type std::count(_IIter, _IIter, const _Tp&) count(_InputIterator __first, _InputIterator __last, const _Tp& __value) ^ kdist.cpp:17:52: error: reference to 'count' is ambiguous suma[c] += count[v][c] * (total_c[c] - count[v][c]); ^ kdist.cpp:9:27: note: candidates are: std::vector<std::vector<long long int> > count vector<vector<long long>> count; ^ In file included from /usr/include/c++/4.8/algorithm:62:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:64, from kdist.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:4622:5: note: template<class _IIter, class _Tp> typename std::iterator_traits<_Iterator>::difference_type std::count(_IIter, _IIter, const _Tp&) count(_InputIterator __first, _InputIterator __last, const _Tp& __value) ^ kdist.cpp:18:13: error: reference to 'count' is ambiguous count[u][c] += count[v][c]; ^ kdist.cpp:9:27: note: candidates are: std::vector<std::vector<long long int> > count vector<vector<long long>> count; ^ In file included from /usr/include/c++/4.8/algorithm:62:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:64, from kdist.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:4622:5: note: template<class _IIter, class _Tp> typename std::iterator_traits<_Iterator>::difference_type std::count(_IIter, _IIter, const _Tp&) count(_InputIterator __first, _InputIterator __last, const _Tp& __value) ^ kdist.cpp:18:28: error: reference to 'count' is ambiguous count[u][c] += count[v][c]; ^ kdist.cpp:9:27: note: candidates are: std::vector<std::vector<long long int> > count vector<vector<long long>> count; ^ In file included from /usr/include/c++/4.8/algorithm:62:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:64, from kdist.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:4622:5: note: template<class _IIter, class _Tp> typename std::iterator_traits<_Iterator>::difference_type std::count(_IIter, _IIter, const _Tp&) count(_InputIterator __first, _InputIterator __last, const _Tp& __value) ^ kdist.cpp: In function 'int main()': kdist.cpp:32:5: error: reference to 'count' is ambiguous count.assign(N, vector<long long>(K, 0)); ^ kdist.cpp:9:27: note: candidates are: std::vector<std::vector<long long int> > count vector<vector<long long>> count; ^ In file included from /usr/include/c++/4.8/algorithm:62:0, from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:64, from kdist.cpp:1: /usr/include/c++/4.8/bits/stl_algo.h:4622:5: note: template<class _IIter, class _Tp> typename std::iterator_traits<_Iterator>::difference_type std::count(_IIter, _IIter, const _Tp&) count(_InputIterator __first, _InputIterator __last, const _Tp& __value) ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema kdist face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.