#3888
Avem un vector de n
elemente naturale nenule. O operație constă în alegerea unei subsecvențe (elemente adiacente) palindromice și eliminarea ei din vector, în urma eliminării elementele rămase se vor restrânge. Care este numărul minim de operații necesar pentru a elimina toate elementele?
codeforces, Div1. #336
Problema | PalSplit | Operații I/O |
![]() |
---|---|---|---|
Limita timp | 0.05 secunde | Limita memorie |
Total: 2 MB
/
Stivă 1 MB
|
Id soluție | #56542057 | Utilizator | |
Fișier | palsplit.cpp | Dimensiune | 754 B |
Data încărcării | 24 Februarie 2025, 20:38 | Scor / rezultat | Eroare de compilare |
palsplit.cpp:1:21: warning: extra tokens at end of #include directive [enabled by default] #include <iostream> #include <vector> #include <unordered_map> ^ palsplit.cpp:5:29: error: 'unordered_map' does not name a type typedef pair<int, int> pii; unordered_map<pii, int, hash<int>> memo; ^ palsplit.cpp:7:32: error: 'vector' has not been declared int solve(int left, int right, vector<int>& arr) { if (left > right) return 0; if (left == right) return 1; pii key = {left, right}; if (memo.count(key)) return memo[key]; ^ palsplit.cpp:7:38: error: expected ',' or '...' before '<' token int solve(int left, int right, vector<int>& arr) { if (left > right) return 0; if (left == right) return 1; pii key = {left, right}; if (memo.count(key)) return memo[key]; ^ palsplit.cpp: In function 'int solve(int, int, int)': palsplit.cpp:7:138: error: 'memo' was not declared in this scope int solve(int left, int right, vector<int>& arr) { if (left > right) return 0; if (left == right) return 1; pii key = {left, right}; if (memo.count(key)) return memo[key]; ^ palsplit.cpp:9:38: error: 'arr' was not declared in this scope int res = 1 + solve(left + 1, right, arr); ^ palsplit.cpp:17:8: error: 'memo' was not declared in this scope return memo[key] = res; ^ palsplit.cpp: In function 'int main()': palsplit.cpp:21:31: error: 'vector' was not declared in this scope int main() { int n; cin >> n; vector<int> arr(n); for (int i = 0; i < n; i++) { cin >> arr[i]; } ^ palsplit.cpp:21:38: error: expected primary-expression before 'int' int main() { int n; cin >> n; vector<int> arr(n); for (int i = 0; i < n; i++) { cin >> arr[i]; } ^ palsplit.cpp:21:38: error: expected ';' before 'int' palsplit.cpp:21:88: error: 'arr' was not declared in this scope int main() { int n; cin >> n; vector<int> arr(n); for (int i = 0; i < n; i++) { cin >> arr[i]; } ^ palsplit.cpp:23:1: error: 'memo' was not declared in this scope memo.clear(); ^ palsplit.cpp:24:25: error: 'arr' was not declared in this scope cout << solve(0, n - 1, arr) << endl; ^ palsplit.cpp: In function 'int solve(int, int, int)': palsplit.cpp:19:1: warning: control reaches end of non-void function [-Wreturn-type] } ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema PalSplit 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ă.